{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 案例数据背景介绍"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1.数据来源：\n",
    "\n",
    "     Dongjin Cho，韩国蔚山国立科技学院城市与环境工程学院\n",
    "\n",
    "     Cheolhee Yoo，韩国蔚山国立科技学院城市与环境工程学院\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.摘要：\n",
    "\n",
    "    本案例所使用的数据集包含了韩国首尔2013至2017年夏天的14个天气预报（NWP）的气象预报数据、2个现场观测数据和5个地理辅助变量。\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "3.数据集信息：\n",
    "\n",
    "    这些数据是为了修正韩国气象局在首尔运行的LDAPS(Local Data Assimilation and Prediction System)模式下次日最高和最低气温预报的偏差。该数据包括2013年至2017年的夏季数据。输入数据主要由LDAPS模型的次日预报数据、当前的现场最高和最低气温以及地理辅助变量组成。此数据有两个输出数据（即第二天的最高和最低气温）；2015年至2017年期间进行了后期验证。\n",
    "    关于LDAPS模式: http://qikan.camscma.cn/jamsweb/cn/article/doi/10.11898/1001-7313.20200103?viewType=HTML\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4.数据属性介绍：\n",
    "\n",
    "      1. station - 气象站编号: 1 - 25 \n",
    "      \n",
    "      2. Date - 记录日期: yyyy-mm-dd ('2013-06-30' to '2017-08-30') \n",
    "      \n",
    "      3. Present_Tmax - 记录日期的0-21时最高气温(Â°C): 20 - 37.6 \n",
    "      \n",
    "      4. Present_Tmin - 记录日期的0-21时最低气温(Â°C): 11.3 - 29.9 \n",
    "      \n",
    "      5. LDAPS_RHmin - LDAPSM模式预测的次日最小相对湿度 (%): 19.8 - 98.5 \n",
    "      \n",
    "      6. LDAPS_RHmax - LDAPS模式预测的次日最大相对湿度 (%): 58.9 - 100 \n",
    "      \n",
    "      7. LDAPS_Tmax_lapse - LDAPS模式预测的次日最高气温递减率 (Â°C): 17.6 - 38.5 \n",
    "      \n",
    "      8. LDAPS_Tmin_lapse - LDAPS模式预测的次日最高气温递减率 (Â°C): 14.3 - 29.6 \n",
    "      \n",
    "      9. LDAPS_WS - LDAPS 模式预测的次日平均风速 (m/s): 2.9 to 21.9 \n",
    "      \n",
    "      10. LDAPS_LH - LDAPS模式预测的次日平均潜热通量 (W/m2): -13.6 - 213.4 \n",
    "      \n",
    "      11. LDAPS_CC1 - LDAPS模式预测的次日第一个6小时平均云量 (0-5 h) (%): 0 - 0.97 \n",
    "      \n",
    "      12. LDAPS_CC2 - LDAPS模式预测的次日第二个6小时平均云量 (0-5 h) (6-11 h) (%): 0 to 0.97 \n",
    "      \n",
    "      13. LDAPS_CC3 - LDAPS模式预测的次日第三个6小时平均云量 (0-5 h) (12-17 h) (%): 0 to 0.98 \n",
    "      \n",
    "      14. LDAPS_CC4 - LDAPS模式预测的次日第四个6小时平均云量 (0-5 h) (18-23 h) (%): 0 to 0.97 \n",
    "      \n",
    "      15. LDAPS_PPT1 - LDAPS模式预测的次日第一个6小时平均降水量 (0-5 h) (%): 0 to 23.7 \n",
    "      \n",
    "      16. LDAPS_PPT2 - LDAPS模式预测的次日第二个6小时平均降水量  (6-11 h) (%): 0 to 21.6 \n",
    "      \n",
    "      17. LDAPS_PPT3 - LDAPS模式预测的次日第三个6小时平均降水量 (12-17 h) (%): 0 to 15.8 \n",
    "      \n",
    "      18. LDAPS_PPT4 - LDAPS模式预测的次日第四个6小时平均降水量  (18-23 h) (%): 0 to 16.7 \n",
    "      \n",
    "      19. lat - 维度 (Â°): 37.456 - 37.645 \n",
    "      \n",
    "      20. lon - 经度 (Â°): 126.826 - 127.135 \n",
    "      \n",
    "      21. DEM - 高程 (m): 12.4 - 212.3 \n",
    "      \n",
    "      22. Slope - 坡度 (Â°): 0.1 - 5.2 \n",
    "      \n",
    "      23. Solar radiation - 太阳辐射量 (wh/m2): 4329.5 to 5992.9 \n",
    "      \n",
    "      24. Next_Tmax - 次日最高气温 (Â°C): 17.4 to 38.9 \n",
    "      \n",
    "      25. Next_Tmin - 次日最低气温 (Â°C): 11.3 to 29.8\n",
    "      \n",
    "\n"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAFWCAYAAABHOLaUAAAgAElEQVR4AezdB5gkVdUGYBAUyQtL3F1yjkvOcQlL2kVyXnJGkKAgUTKSBQGRnHMGAQlKlJwRRECCqID+Kijy/yr1P+9dblPTOzPbM9Mz091z7vPUdHfFW1/V1P3qnO+cM0ERLRAIBAKBQCAQCAQCgQZFYIIG7Vd0KxAIBAKBQCAQCAQCgSKIStwEgUAgEAgEAoFAINCwCEzwr3/9q4gpMIh7IO6BuAfiHoh7IO6BRrwHJvi///u/IqbAIO6BuAfiHoh7IO6BuAca8R6Y4L///W8RU2AQ90DcA3EPxD0Q90DcA414D4RGpWG9ctGxQCAQCAQCgUAgEAiiEvdAIBAIBAKBQCAQCDQsAkFUGvbSRMcCgUAgEGguBOgbPvroo+JPf/pTTIFBh/fA//zP/yTJSa13dxCVWpGK9QKBQCAQCAQ6ReCHP/xhse666xY77LBDTIFBh/fAqquuWjz44IOd3kvlhUFUymjE90AgEAgEAoFuI7DbbrsVF198cfHvf/87psCgw3tg1113LS677LKa77MgKjVDFSsGAoFAIBAIdIbAPvvsU1x11VWdrRLLAoFi33337dJ9EkQlbppAIBAIBAKBuiCAqFx55ZV12VfspHUR+Pa3vx1EpXUvb5xZIBAIBAKNi0AQlca9No3UsyAqjXQ1oi+BQCAQCAwgBIKoDKCL3YNTDaLSA/Bi00AgEAgEAoHuIxBEpfvYDaQtg6gMpKsd5xoIBAKBQAMhEESlgS5GA3cliEoDX5zoWiAQCAQCrYxAoxGVL774ovjf//3fLiUX683roy9//OMfi7feeqvLh/nggw+K3//+94VzavYWRKXZr2D0PxAIBAKBJkWgJ0Tlww8/LA488MBip512KsaMGVNsv/3240wSycnVctttt9WE0GuvvVYstthixeWXX17T+j1Z6bPPPivOPvvs4gc/+EFxxBFHFAcddFDq6y677FKMGj26WHLJpYp55pmnmHLKKYtJJpmkeOCBB9ocTrSU/CL//Oc/28zPP9Zcc81ihRVWSLlJ8rxm/Qyi0qxXLvodCAQCgUCTI9ATovLqq68WE0wwQbHiiiumQd6+ytN+++2XMp1aZ6+99qoJqaeffjrt8/jjjx/v+ogSovGjH/2oOOusszqdTj/99OKFF14YZ5/I1fzzz18sssgixRJLLFEsvfTS6fjTTDNNIl/7779/cfLJJ6fQ3Pfff7/N9scdd1xad5VVVinefvvtNsv8WHbZZYuFF154nPnVMz7//PPi5ptvThgiPkjTL37xi+rVCucrOd8dd94xXovTxx//ubjoootS/pO9996nOOOMM4o33nhjnH3WOiOISq1IxXqBQCAQCAQCdUWgJ0Tl9ddfL775zW8Wyy23XLHzzjsX2223XZsJCdh0002LiSeaKFleaun4s88+mwb/U045ZbyrP/PMM2ldRKiW6YzTT6/sU30jZODee+8tbr311uLOO+8s7rvvvuLee39eTDvttMXIkSMLfUGcnn/++TQ99thjxaOPPlr861//quznkksuScf+7ne/W/zsZz8rttlmm2Lbbbcttt1u22K66aYrEJ6tttoqzbPs+98/NLm28g5+97vfFaussmq7/Wel+vTTT/OqxcMPP5zWW3DBBdvso7LCl19efPHFwjrVmDgv5KU7LYhKd1CLbQKBQCAQCATGi8B///vfTtfpKVH5+te/Xmy44YbFySefUhxzzDFtJlaR733ve8U3vvGNgmWivcb9Um7tERWE6Le//W15tfSdyyWTCaSlswnhYJHI7brrriu+9rWvJZfOZJNOVkw//fSJWHDxGOAnnHDCYtJJJ03zJptssmKiiSYqJp544mLGGWcsfve7d9JuFHTUbrrppoK15ZxzzkkkZ+jQoYXJecNnyJAh6fcMM8xQrLXWWkU+Z/1ZdNFF0/E233zzRILefPPNRHiWWnLJNB+5yRqXRx55JM2zDe1Me+3vf/97MXz48LTeoYceWrz00kvFK6+8Upx22mnpfJ3DE0880d6mnc4LotIpPLEwEAgEAoFAoLsIGMwNMj/+8Y+TKLR6Pz0hKgZVAzi3yZZbbllsvPHGbSbWlPXWXS8NmrQs7TUali232LKi86gmKn/+85+LGWeaKVkq2tu+u/OQhF/96ldjyc2zzyR3y7HHHpt0KCwhCjX+/Oc/L/bYY4+kl2FVeeihhxKZ4KohsGVJQgZyY2lRZfjvn/y9+PvfPymWWWaZYqGFFio+/vjj4pNPPin++te/Fv/4xz/y6umYSNFGG21UISN5ofPOVpEbb7wxzWbNsT4NT0dEJeM3yyyz5F1VPmFt+5NOOqkyr9YvQVRqRSrWCwQCgUAgEOgyAjQkBqiZZ545iT+5Of72t7+l/bB0XHHFFV3apzd8g7XB/oILLkgajhNPPDENgKoxGwjz5PeZZ55ZsAawJPznP/+pHMvb/9RTTZWITrZO5IE2u34US9T/KaaYovjTn/5U2bYeX5A3NWz2+85+yUWz3nrrpd3OOuusSWuDjEw08cTF7rvvXtC4qCCcyw0gH6M22CDh+v3vf79dzYj1l1xiyXa7irAgMa5LtUg3b6B/liOA2uOPP55+d0ZURCexALGc0O785X/+kneXXFYvv/xyG8tSZeF4vgRRGQ9AsTgQCAQCgUCg6wh46/aG/61vfSsNcAa9PIlmOfjgg9MgeMMNN3Rp5wjDSiutlNwWq6++ehKNEqEiFCJdWBrGTssXyy23fLH88ssXiy++eDHnnHMmN0k+GE2I/hzy/UPyrOTKMS8TFQuuvfbatB6yUK+GbBl8kQnumEknm6xYd511EpFijUBOWIwM+pNNNnkx++yzF5tssknxy1/+stIFJIo1ZMiQocmdQnTL3YW0nXrqqcVss81WTDd4cMFSg7idcPwJaTky8d577yXXEN0IQtReY/GBBcsKF96TTz6ZfndGVOznsMMOS+vZVh9Yu37yk58U9DDdbUFUuotcbBcIBAKBwABFgEuHRUPkDZEl94A3aC6WzTbbLBEJxCBrLgxa5Yl+wqDKHUCv0ZVG4Gngm2POOZMmg/7hwgsvKrbYYot0jD333DMRDVExeTJY07DQTOQmEkif9D+3aouK+dwg9B20Gdnyktfv7ieS8Ze//KX4zW9+U9x///3FkKFDizXWWCPtzuBuYEYm9A+mSB/hLdL3hz/8oXJY+9A/Qtsyvvk7kpO/58+77747RQn57VjcQu01WNHRWMfxc0TU+IiKfamIzX01aNCgyvHdCyxIHYVTt9eHPC+ISkYiPgOBQCAQCAQSAgbAX//61ykyxaDjjXzvvfdOFhC5OeaYY45i6qmnTib+PAAa1Ogr5ptvvmLEiBGJhCARom/yOjQlxK/0DlwvXR2Aypdnl513TjlGthuzXdJy6BcLxO23357IkkGdhWXttdcu1l9//TQ/b891MnjwtCk0uKy3aI+o2EZuE+dgeT0a68Lc88yd+suqYd+jNxxdcI3ImyK0mICX5Ulk04orrpDEtc4PQSy3W265JZEtpEcIMPHvsFlmKRZaaMH03bE++OD3yaJhHS6wd955J+0XkZAYrr2WNSk0QCxATz71VOpnLUQl74/IFzGSI8Z5Oc8TTjghL675s6v3yQQ17zlWDAQCgUAgEGgoBGg7DNLybjDlC40977zzkrBSeC+XChIirFXkSSYYokcQE1YShIAbghCWu+H6669P+gWDJMFmuXn7P+SQQyr7mWqqqZK7Q84Q1g4alWuuuaa8Sc3ft9lm60SMJEw7/vjjkhvEWzvLw9LLLJ2sOUceeWQiWOUB0qArGsi8n/70p22O1xFRoauxfi35VdrssIMfrApnnXV2sia5FsJ2hQOz3GTMubJgc/TRRxe7775bIS/Mgw8+2GaP3DjWR6RyE6ZsXg4FfvfddxNZLFuOCG+5w6zn3Nprrq3lW225ZVpci0aFZY2VDFmsbldffXXaH7dcV1sQla4iFusHAoFAINCACBCKIgoGL+JRLhVCUjk25NKgh6A3YPUwAOUJISEW9fZuHet6A+bKEfoq2oSLx5t8Dm2t9fTtIx+n/OmYBlAkJgtEa91nXm+bbbdJrh+DmHOk9bBfFoSnn3k6WXv0m8XBsZ977rm0KWLg91xzzdUmCsbCjogK9wjrwyKLLtJGkJv70tPPc845NxFBFqCZZp6pWG21VVPyN6QR8eqoZTKBnGhcSggIncvfvxQsS6PPmrHUUku1Ed2e9MMfJhzofMrRQPbDmmMfcLrnnnvSvrOFxX46ark/CG91ywQKAetqC6LSVcRi/UAgEAgE+hgBJISrhMnegEsIeumll6a3bW/T9AALLLBAciWUCYHvBimRJEz2IksINVkzJAuTdMw+DVTliJh6nZ59cr1U9+moo45KhzAAdZeo7LjjjsXgwYOTpYEw13G4n1iKtB133CFFGslR4pxzozPhkiKSrW5cL/pqwK1uMJOJlkWG9YiFgpWh1gl5dO2yzoVA9Wd33ZWui2N+5zvfSctmm232Yvfd90jJ1pAvyzYcPTqFM5f7xGUlqy2hLUuZloW/rm25yQxrP+XSAO4nhMJ8BJVlRfZclo9MUrj7cstEBZ6y17Jk5UmYNOsPC9rcc8+d9rn11lsnkvXsc8+lZaxxjgXDrrYgKl1FLNYPBAKBQKDOCBCIsgRIGnbHHXcU559/fsFtkUkIIedMM81UTD55W3EkEiK515JLLplcH9wD9CSXXXZZIjOyhLJcdCSYrPNpjLM7+gdWAgNUngyuuT/dyaNioDfoO+cZZ5ypOPfcc5NLZp111knHoO+wzvXXX1c5poG6o2bdTNK4wvRT1ExnbeONN6rsO59XLZ/Dhg1LYbqus37aRti265XbzDPNXMnbgowgSHQq1kVIc5h0JiVIl0abgmDYn0gqkUvuHyRE0jfby61S1uT86cM/paic6r4TO7N2lddFzKrXK/8WXaWxSrGalJf5Tl/jns5Yp5Vr/BNEpUagYrVAIBAIBLqDAGsFt4mCd8JLuWQMLqJOvDETn8o4Wh0hY7Dw9irfBfO8LKHeZL0VGzRk/DRoMfc3YmMpoWtBpgyweeAqv9V3h6jAkwbFfmeZddZi3nnmSZaB+eafLx1j3/32TRFArCsGaUJax2Y9aK8mDivHfPPNnyxStDjWRVg6a/Bn0UIwxjtd/tU63FAaAjlslmHJGiRqJzeDOBeTyKlyY/XikkP6uN8QiHnnnTcR17y95RljeUzGZrKdIREiNXxymPitt47tQ3n/iJPwa9odup32MvEil6KLcip/FpbyxM2Wm/7Jz2Kfhx9+eMIIEe9uC6LSXeRiu0AgEBjwCBg0mLtlDuXLN2iJamAyNzAQDjLNV5MQgwhLCFGpQdybLzP6hRdemISI3Bce7DQn3XkD7c8LgwzkUGHkgDuBm4N2wvlm14c+doeo2I4Ox3EM0jncFf5zzjVXcv1sssmmBfdStghwN7C4sC5VN+LizTbbvFhttdUSqeH2ya6U6nXr+VuOmeoGJ/1gzWiv5X7B8Kyzz07WpLweLYu+Ezdz6YnwyYn1rCMvC6LTUYK3vJ9G/Ayi0ohXJfoUCAQC/Y6AwcAg5gH/1FNPJWEpc/oBBxyQit8x3WdLSHWEjKgZBMVArUgcS4jcHwSFdBAsIdw99A6t1IQy54ghWWENvLnRclTXeekuUcn7LH+6Xu0N/uV1muE7i1G58GAz9Lm3+xhEpbcRjv0HAr2MgMRQeRBs71ASNfHje8Pqj0ZPINU5gZ8y8cImpU1nheivZiBgCcm5QggImalFu8ikyccuKoRYU+6PbFLnZ8/fWQdU7ZXC/KyzzkpEhlmcVsCbfquRkM6uFQuHwnaw4W7hSqil1ZOo1HK8WKc5EQii0pzXLXodCFQQuPnmm9MAIY14e83gawBBFvqjGfjz4F7+NOiPT7TYnf56i/dWisBxoRCnOneRIdwxCAZrh5weLCF50jd9EhJKGChXCBKCWCkQRyQo1FPCMuvyz0crklYDlggd10NXNDNBVOIOqgWBICq1oBTrBAINjEDOE7Hc8u0nUiKME3rYXgZKPvyyeb58mpZlH395vu+2Ia7rbFCyjL5i2222SQP7mDHbF0iViAThjAgCwahQz3JzzM87KCNvmaypzkktEomlJCyj78i6EO4WoZD2jXhktwyXBJ0Ea4nKumqSyDPCGgUf+gX7Hl+uEKLBu+66K4ULl/vN9ZA1BOX55e/63xHe5fWa4Xu1FSXnKelK34OodAWtgbtuEJWBe+3jzFsEgRxSKWNoe030heJlNALcHSJNCD4PPviQVMeDJaZcb0WEirwTs882e7IuCI/MgyvyQXswfPjwFC4rIkXmTPO5OwgW/RY6Ka8HUpJrquRMmbmPCy+8cCIwOe+F4mgGLqG4Cy+ySLKAEJeyCMl2ad+SkiEcwnQRkbKFxndRJnme6q8SgeUU5XKJ5KgLfVDLhOhTP/VFTZW/f/L31D0RNRtvvEmKzBBSKqJC5IXGCgRP62gEi7aVP0JdlJ122ql4772xok2DObyFZRJIWi5EtLvZWNMBG+CPayk6hRVF6G93Bb9BVBrgYjZBF/qNqBBVucH5hWNqHQz46vMDvQnu/5bo4viIitwaBu8rrrwiWS/yQL7CiiumAddvmUmRGBEUiIsolT322KMYNXp02tZAqxmkrb/yyisn3csqq6ySfiMm3C2WIREzzThjGvwffuihVIjMfGGKOVeIgY67wPxNN92skByKJsTv6knfslVELhG1Y9QfsR4xKw0OQuK3fBHm7bjTjsWvfvVEgWRw9XDhsKbYF5eNgRVx+cY3vp5ylmSM9t5rr0S6ROvYn/M95uhj0nfnTHcy+ktMZGxlRVljjbF5QszPIaKIj4gdZCafz0orrVhsvNHY/BtIVnshoI1+Q+ozl5hzEjLdU51REJVGv+KN0b9+Iyq77bZbeoB52yOyi6n5MaD4Z1L3Fhyt7xAYH1GhzTCwIBMiWAz6EkNlFwfrgOVyfHjT951rRlQKdxHNBlIhk6X8D6wkOT13JgjcKMJFM/kwiDmu+jHIgn06blmYah5rR96/36xCLA9cMuYb0IW3yithea5LQhjsWMiGJi+J5UstvVQiyohIzp9hG33PLjL3qPOSZ0MiLUJaxdOEdL74wotpXWTH/oS1vvvOu4ncyJ2hZdHos88+l/KZWM8+czvowAPTtgTDiJnz1s+c5CxrXG677ba8SVN80vnIXSK02gtJd60o5ZMNolJGI753hEC/ERXm4PyP31HnYn7zISCjJs1AtL5DoKtExcDKHZEbt4V5LARcQr4jCZJg+WSFMDhxD7GECrVFKMo1YyaddNK0nm1N1ueGMUAb3MyjDZHb4phjjqlkKx05cmTx2T8/S64T63CNcCuxSEh2xr3grV3+B8SibK3LidJYNU488cR0DNZZjVaEC8k2s88+WxLP2jfNCg0Ly4jEVlxJjotAjR41qnjkkbFkBGHTD8tMclvAWcukiSbD4G15OfNpvh7IHmJoOWtMbtkVJt9FMzRWlEyu1lhjjeQyq1e/EZVmwaFe5xz76ToCild2pdRC3aonE77lYkdd73Zs0agIKEKGrETrOwTywLjyKqu0e1ADpsGS8JT+xPdRozZI69KW7LHH7mmeyrA5QocYdY7ZZ0+Ew/rVE/JCk5HdNVwlsloiBvPOO19yxyAVn3z6aXLr2F6IdG5Eq9NOOziVrv/0k08rRIMolruEfsSLjD6zhowaNSr1IRdfM3giQKw1ZaKSI5vMUzxtookmLlguXnrxpWQNsr392qf+0ZAQ5bII6aP043KnsLCw2jz/3HMpkiW7n6zP9WRdBMog63s5QRcCZJ4IGBYV37nIcuNSM49lqtHbOeeckyxXXIGsS1mrVK9+y5jqmsMypsCgo3tAtB4LZa0tiEqtSA3Q9YKo9P2Fl5HSwEe/4Q3V5K2dIPbuu+9Oxc4sp8MgjPWdNYR7RhruSSb5SpRaFqiyPpisj5DQa+Qy9KwrXD05NTqLBisFy8Riiy3eBgQJz+zjjC+tHXkhLYz5cpmIpOEikYODq0fulRWWX75gcSmKL9JDyrrOUfE221qfxQcpyZYgETy5EfXahj6FZYN7WTZYAy6iY5kifVwyiAkLkOXWnX666VKlYS4iYllVh63/7rvvFdttN/Z8nnzyiaTrYfUZPO20xV0/+1lyH7H06Bs3WT4Oa1Ju3N721ciWBCQtp1wfMWJEuj65//X8lMmX65G2J6bAoKN7YOONN65Uv67l/guiUgtKA3idICp9d/ENsEJ7s9vD4FfrxEKAFEhYpqqu7VhEDK5cdwgB0sFCMs+881TctFwr5tOWiJbhRrEtYvTRRx+lZVwuLDW5qVFjneyWyfOz1oN2RjNoGfTzOcw8ZEibEvfeqAz4SMOJJ56Ujq+fHREVwmBkzf702ScXUg7T5oZS22XaaadJbivkjV5FY/3JdWqcK7wU+9PoUeyLpkdjseHiyv2edvC0FZ0WPM0vE5Xcp0YlKsgeQTQrChzqoUVJQMWfQKCPEAii0kdAN+thgqj0/MoZ5LlGuA0kGSMG5U5gIkcsvOGycAjTzUXUEAqDPJGsiBhaApE0RGgGWIOi8GRvylwrkqHlJqzYPAN+bkKFuWZNolfKTdZRbguWD1oQ23Kj2J5lhEWinJWVtcI6jlNu0sibn6vBWua43DOmcjr0B3/xi+Kss36Ujmk9rptB00xTLLTQgum4H338UdpXeZt8LH266aabkiC23C/LET3YENrqZ7n5Le+L5Swjucm3ot+inHJzXEnh9Lt8PjLgWpf1KTdEyTzn0EgNFtlCtvbaa/eaFaWRzjn60poIBFFpzetat7MKojJ+KA38BnbCVAMoVwT3xJgxYxIJISRlKSBIzW/piAjBaq4fwxpBYMYdww1DCKuGjBDjHM0z/p40zxpwggUytuOOOyaxrd/n/zT0UPW4iu5BViOWFLqUaIFAMyMQRKWZr14f9H0gExUmcm/Z0qwz+T/44IOFkG0iVdVxJSzjFskJyDIJ8YmEEIZaLiLH+scee2xKT+5NXf0Yrp56ixn74Jao2yEefujhQnZbxQARtRyqXLcDDMAdua9yGDc9UNlyNADhiFNuEQQagqgQDzJnl02v8PVmKWtm2T+ecTeIeIPNKcF9GkyY1imNmbGFG5p8N7322mu9NjDoK01ALlGe+zm+T2/Lxx1/XEr7Pb51q5fDhTvBw8m5mXz3Fk5f4DfXABOwyXdCx48//qh6Vx3+bmWiAntmf64PJn4RJtwxIhc22GCDlFCMJcRbKTFlJiLeVJEQWhBJwUS8uX+JO4ld3X8sLOWS7B0CHAsCgTohwIoij4z7lWtxIJPgOkEau2kQBPqNqPzv//1f8nHz6x5zzFg1/0/O/0l6yzTvt799M+VdEMUgBFOIYdkHLE038zlhX64XQuHvTdYb7owzzFBMN93gtA/5Gww01PuZSPA1yzdBCe/Nw9txR5PlfL0yOHqr1vjG+a7zYCQRlggLWTKF8zK3Eq6VJ6I2NUXKDxDf5XQwCPJzawceeFDSJci8ufjiS6QB0/dll10uDYzw0PjGuRWEdTpnGgffvZ0Kr+RqIKCbeqqpiimmmDJ9J0Lklqi1NStRQUKQNW+UrgkNhnPhXkFCCEfdF+6XTEB8uoZwdK8Qp0rJjoAiMRKIIXqIYJRtr/UOivV6GwEvJ6x27l/PKi8k0QKBVkKg34jK3T/7WSq5Tl2v9Lp/simmmDwliBIyOfPMQ9I8gy1BocySBIW5SJiBiLXFdkgE0R6/PiLhDVfeCFEFl156acqlYFDK0QguILO7fU455VTJVIqk+CdvbxLymFOLe2vRDFRIgrolGuW/t2xZXBEo/WpvQjiyhci5IE4IBwy4CViVjj76mJRQykC56qqrJSIjugEZQbhYUTQCSsRk9IYbpsFY1MJ8889XLL7EEslKkEWFBl01XAgJJb6qtWS7YzQiUXHtkTUajvvuuy8lDpLjQrguMikiQ04Q2JSvAezcW3B2ndWbkQYegZS7hDgVsaE5KQtRE9jxJxBoMAS8LPn/FHLOyuelKFog0IoI9BtR8WZqkBdnLTkTC4CBRDl2g8dEE30t5VY44fjjU2p+SZn8I+ZBPl+MU045JeVeEJmQ21NPPZXqgchEaVDyBu145SadOLM+i0wtjUXHoJeFaQZLA+H22++QNkdUvIlzsXAniArIE2JhQhYkrcrhgTJ6moeseOOXOEq/Omr7fHufRILsXxPFIKGVQXmLzTdPYZZCMpGqjz/6KNVL2XWXXZMpeIYZZyjke5CzIodzdnSc8vy+JiosTCIuYJcjZKRfl0tENk16BsSVidv9komI74SZiK+cHCwh7ivWLUnG7Mt5I6gZ//J5xvdAoJkQ4Nb18uL+9yIlcV20QKBVEeg3ogJQAwfLh4FE81Yg6kFjATGoakzv5UyQaWbpj8FHU4uEbmCZZZdpkwcBGZBp0wDGDaAhBAZ5IZ+aUEvagqxr8em3UEiDJzdPNVFBCogkNURl6qmn6pQEOL6CanmgpIWwz3KoY9pZB3/GEpWJEhGyCqLCQuDcCDyJNWeZdZYUaWJgtm/WlO3HbF9I0sUCZJ7kW7W2ehIVVgo4esjqA4sPEoKk6h8LEtIF13KiMt9ZnITwWsc1U5NGHg/aIJlJEVH7riaytZ5nrBcINAMCnh3+J7l01UaiRYkWCLQ6Av1KVIC77jrrpoH1zx9/XEw11dQpI6X5iAqCwnogUVN2ueQLQifgLcJyOSo0Wg/bsbwgPAY4GfAuvvjiZE0wSHN/aJmosOho/vnpNyb55iRJt8Ccyu3EPcSt5Bi2L1tUxiUqU4+TuyHt/Ms/1USFi8oxEA5kiH6CG0teDZPcB8Sajz32WNqD9bmVskWF60c/JelSvfb883+arA3Kzj/3/HPJ6kDcefpppyc8kAPnmPdX7ltH3+FSS1FC/WcZgu4LYgoAACAASURBVBWSJGmWRGP0MDQz+iTrKPdVtWtM7hBWEoRLVst99903XY877rgjpW5nLYN/kJCOrlLMHwgIeGnKejbPhbIVeSCcf5zjwEWgX4gKbcZuu+9WrL/eesWCCy5QDBs2NL0pIwKzzjJLJUkRkiAtuMGNmXPkyHUqRGPNtdZKg66BepVVVk1XUP0QAx7hI/0KomKeDJkGefvP1ptqoiIVOXeCwZHOhd6Du+lrE02UrCTtEpXpv7KocNsgVEiHdUV9+G4S3vr7998fx/WTiQrLEkEwtwUiYVA3aCu6ps+5eNM+e+9dTFQiKixJ+qhAGpeSicXh2OOOLV5++ZX01iXBF/JDbMfygBh1laggZ/DyYFRHBUZcKkceeWSx0047pf1zs7HuVJMQ7jGWEC49pDEnLHNNRHupAcMSwpUWLRAIBMZFAEFXTRqh594MK8q4GMWc1kagX4gKISoNATeIQdTbAesBISQ9CVKy8cabJJJhvsgcgzEhah60DXLEsosvsXhyH7lMUmGL4uDq4fIwaBo8pejOKbENslo1UeE2YSEpNw8HxAGRGB9R4cbhnjDoKhCHJHFlmQzWU04xRSIdXFjZ9VNNVBATxCo3VglEhQBW23uffdoQFVoclhTT5ZdfnrDxPYtokThht7QdJuSrq0TFQ5GVip4HkdOfPPltmQgauRuIWblj9JewWfQBPKrDzvP5xWcgEAh0jgAin4X8noO1uok732ssDQSaC4F+ISpliO6+557kmuFeyNNF6ftF6beB95JLL6m4O8rb+i5yg0tBQ3qQGdaMp59+OpGWAw44IEXHyHFhgM2l3WshKkq9d0ZUEBDH1xABRIP7w+DuuFxX3zv4e0mDQT9jUGdZ6IyofGujb6X9+cNt04ao7D2WqOR06VxFdDYzzjRjxZKhT47jeN6+uLoIUPfcc8+Ud8b+sk6ncqBOvoiIYd0hxD3iiCPSuQmxhi8XVITpdgJeLAoEuokAKwrST4vi/7gW92s3DxWbBQINj0C/ExVuAdYHb+Xzzz9/1bRAspYYXLka2muElQS52mabbZYiQVhRcigvq4LB3ABuPzn7ZXtExXIJv7iNWFO4nczjuvmfv/xP+p41KgZolhuiTo3+hPujs8als8Tii3dIVFh9ykQlV9GtWFSqNCrcSvp6zz33Fttus20ibKKLCINZNLjOzjrrrPSg8+ntbNCgaZL7prN+lpcRu+bjl+fH90AgEOgdBCSuzFYUVuawovQOzrHX5kGg34mKJG3+GblX/EOWp/fefS+9/SMLmSBUQytaZK4550qzuR+4fLzxcxF5G7GcJoO41n4UK9OqiYr1kSVRM3Quprnmmjs9MAz8pnI/5DDgDuLWQA64nLh/OmtLLrlkm6ifatePY3IVcf+w0OQquNndZf2ymFafEDKi1RNOPCERElYcpETjdnH+tjn00EOTfiVrdDrrZ3kZouL6RBKpMirxPRCoPwKsKPIBCbXnRhYEEC0QCASKot+JyoILLZS0D6wiLArlScG2IUPGJn4jkG2viSjJFhWRMtwUGosHt81xxx2bEr0RciIa6qxomaiU86hw29guTwSeOcGcBGNlopJ28uUfuVwsy2Xiy8vK35NFZYlxLSosNtxBQpxF8GRhrHOR5I51RJNLpExUJDxzXAJVuWeI7bjB5FW45+57kg7I8kO/f2hy+3AJIYZdCU/OBM++aYAkWIsWCAQC9UVAEsYVVlgh/T9vueWWlaSO9T1K7C0QaE4E+p2oICMGY6JP+pHydMeddybfrMGW1aC6XXvddWlwtvzGG28svv3tfYu9996nshrNiv2dcMIJicCIUskNUUGCuItE3CAk3mjamyyTsdRxzq2qRCp/B2vKaqutnkKM5V7xJkTomycWEdNss82a9CLVGhUWmVqavDITTDBh0uBY/7JLL0t9UtuDZYX7KTfaEqSEziY3ZAtZOuec2jNYsmQ5LksNXzkM6GyIdyVmixYIBALdR8CzhRWFyN3/sGi4aIFAINAWgX4nKjQqknzttddeyaLAqpCnPffYI2WONTgaeMst6zdYSo76wVHJesIaIRvpRRddWFx62WWJ3BDiIgwErgZX1W8RBdYT1gcPCNqYeeaZp8OJOwmhqu6HfCHzzT9/0tjkOj1jycRXkTG2KU/Lr7BCRaPinFlIOiMqHmSOw33FdWR9WXIRKll35VVwTnQ+SMyYMWOKo48+OpEzWCBwNCZXX311+o60EeYhZ7U0eVTgp8mRIkcNbY5zov3hUpLALVogEAh0DQFWFM8s/0usKIIAogUCgcC4CPQ7UUEApJ4XhsyykpKdrTE24Zkw5RWWXz79I1dbVAzy6gHRiWjeRIQ78+0atA3o+ZPPlxvIA2HllVZKlg8EgAZkoYUWTq4TUTEdTbQh8pUQ5Ioe0mhUuJ1kh2QNyo3AVdiwqJg8eSDlhxK3jORoWi2ZaZESJCqTnR133DFtS5/C5ZX1KypJExYjft7M9JXepZxmPu/DeWerTu53R5+ISrWQGUkSOu2a5X06NpcSXKIFAoFAxwjI0HziiSem/x3u2Pwi0PEWsSQQGNgI9DtR8abfWQIyb/5ClKtr9SAooljKDQFAFKxLOf/CCy+klPgsEs8992wiEPmtxbosAbkScXk/HX13vEyMrCM8t7pfHW1rvmPJqJubBGwIWC4BkOdXf0pAx2qiem/ZEsISU64obTvLWT64qmhYuKKcfyZNErZZVmtrj6iUt7V/VaiRTaRFKDQ9UXW/ytvE90BgoCLghYLr1P8KoXvOMj1Q8YjzDgRqQaDfiUotnYx1+g+B8RGV3LOPPvoo6WG4yTyEJYijCYrQyoxQfA5kBAj0uV39b0gs6QUtWiAQCNSGQBCV2nAasGvVSlQyQFxqsv/KoumhzOXG/x7RQhmh+OxvBLhm6beOOuqoFC3nO1JNw5YtgaycymqIekMyqhsXJ9E8PdhHH35UvbjN78cffzxZGv0/0JCx+kYLBAKB2hEIolI7VgNyza4SlTJI3GL0PWogeUjTENHU5MGgvG58DwT6CgGRcO7H9qY11lgzpS6gASMWX3CBBTq8X3Oeo2oXdD4PBOeYY45JxxFhqNJ3tEAgEOg6AkFUuo7ZgNqiJ0QlA0WXYz/5wS6xnbfYiBbKCMVnXyLw4x//OJEHEXO0Wywst916W0ryiLzccMMNqTvPPfdc0rqVheeSKJq0nD32lZdfqXRf2oM//OGPqQCoAqH2J1eTXEm5sajkfeR58RkIBAIdIxBEpWNsYklRJIJRHfXTXWA88CXcGzlyZHqAi0iSx6YrtYe6e+zYLhDICGSiss3W2+RZ6dO9iFgI3xeZs+aaaxQbbbRRquzN1XPcsccl0bi8RWp8Scw40cQTFa++8mra/uKLLk6pDrKw3L6sm2tzPfnkkykcWcZsUXlyE5XF8W06Ez8CgUCggkAQlQoU8aU9BOphUWlvv95W5ZwhLPRAFwkhuks4drRAoDcRyESFRQRJfvSRR1JUHfeM6a233ir++te/phIcROFICreN+1TOJaJYaQb8nmzyyVMknyjDcioAiRXzb5E99il1ArG54+fUBAp9RgsEAoHOEQii0jk+A35pbxGVDKxwb8n8chI5xEXl5zfffDOvEp+BQF0RyEQF0aiecp0sIf4sI5JREoivt+66aV1uIk15DcvkaqJRYXmxr3nnnTflVWIpYXExj9uHWNd3JOf1119PrqEpp5wq5Twqpzyo64nGzgKBFkGgbkRFsrSu1JBpEfxa/jS4faqT7fXGSXMLKZg4evTo9ECXsI9vX7RQTpDXG8eNfQ48BDJRWXqZZZKl5Jprr02aKaRDwkT5jpSHQFRYQPxGpCVQLAvBR22wQYpqm2222dI9i4g88vAjFUDVxjIP6ZYw0vdhw4alLNcSXc4551wpu3TO7VTZML4EAoFAGwTqRlT23XffZL73DykEL6bWwGD48OGV7Ldt7pxe/PHqq68WBx10UPLje7jrgyRyf/vb33rxqLHrgYJAJirC5ssti2OV51BiY9ovLSqid9Zee2Ry5eQIH4QlWwEXWWSRVJncvcoCqRGQK7A64QQTpHDkAw48IBEVma2FPnMtebG75557KoVPy32J74FAIPAVAnUjKvywd999dzJ7SikfU2tgcP/996eH6le3TN99Y34/88wzi4UXXjg95HMSud/85jd914k4UsshgEwgFax35UYga75kbMgJC4oINe3SSy9Ny0Ty0FJlt448QfQpInkGDRobhr/++usnSwkhLcvge+++l6KLfJe5WZ4hxT4JapWeCIth+SrE90BgXATqRlTG3XXMCQTqg4AIDCQ4J5HzwN9kk00KpQWiBQJdRUCBUjW6pLAvN6TYfNWMaVC4dBT+9F2TEwiRMQ0ZOqRYbPjwYoYZZqiUpHjxhRdSQdW11lor1R7bYost0ro0KRpBbrKyTDhhmq+WWVfKWaSdxJ9AYAAiEERlAF70Zj5l0UL77LNPEiEaMLyhKkgZgsRmvqp923fEQ3RZWW+iBwix+dwyX/z3v4Wkb7kOl3pkInncc3vssUfKg8LqonSEIp2Wm3/XXXelk6G5IqwdNGhQ0rvkM+RSUh+LezNaIBAI1IZAEJXacIq1GgwBAkfRQjmJHLeQvBT57bXBuhvdaVIEEA5FNxEUQltum/YawexMM8+U1hNqP8ccc6Tv9cpB1N4xY14gMFAQCKIyUK50C5/nbbfdVtAFGEzkrmDSV2naIBMtEOguAlyLXD/uK3lPRAJ11mSb5TYSrbbffvule7Cz9WNZIBAI1IZAEJXacIq1mgABERlysOQkcgSPrC5M+dECgVoR4BISdYagCCMWGBAtEAgE+g+BICr9h30cuZcQ8OYrsiNHCyEuP/jBD4qIFuolwFtot7/85S9T9lkkZffddw/tUwtd2ziV5kUgiErzXrvo+XgQkB3U27AIIQPPxBNPnGoLyV0RIaHjAW+ALWZF2X///dN9Ms888xR33nnnAEMgTjcQaFwEgqg07rWJntURASJbtYVywbjFF1+8uOKKK1JirjoeJnbVhAjQoiywwAKJpIjcicSCTXgRo8stjUAQlZa+vHFy1QgQPNKtICqsLKKFdtl1l+Lll1+uXjV+tzgCtEvZiiKUWK6eaIFAINB4CARRabxrEj3qAwS4ftb9stAcwmLaeOONiwceeCBVy+2DLsQh+hEBNaSEG7vuyn+EFaU+F0M26SeeeCKVB1AiIKbAoL174Jlnnik+/fTTmm+6ICo1QxUrthoCwkgNVAcccEBx9NFHV6KFll566VRbiPXFP9QZZ5yRxLhXXXVVJUmYlOlcRx7Mr7zySnH66aenfzz/fJdeellxxBFHFCrxRhXoxrprJAZETFx37p6wotT3+vhfGjlyZMpp5HtMgUH1PSDflfxXt9xyS803XxCVmqGKFVsNAUXpDFhqt2gykXILqZhrvnTqE3994iTCnXvuudM8tV5kML355pvTb1aYqaceW+Pllw89VIwYMaL4+te/nrKSqgOj3otIkmj9jwArypxzzpmumzwn1Zlp+7+Hzd+DPffcs7j22mub/0TiDHoVAS8LXvRqbUFUakUq1ms5BDJRUU233BCR66+/vlhpxRWLGWecMaXr33yLLYphw4alQe6DDz5ILiJkxrT7brult4PLL7ss/V5jxIjiH//4R/HCCy8Uo0aPKs4777zy7uN7HyOAgJatKKojR+sdBJS3YHmMFgh0hsC3v/3tLt0nQVQ6QzOWtTQCHRGVfNL/+fd/kvtmkkkmSQQkExPF61TY9btcgffXv/51IjbmcysoYhfJwjKa/fMJ/6xFkQo/rCi9ex0QlSuvvLJ3DxJ7b3oEgqg0/SWME+grBDJRufDCC8c5JK3JhhtumNw/3DvHH398oYZLJiuZvPC/ltt7771XnHTSScUaa6yRXEbW//73v19eJb73AQKKCxo04b/QQgsVP//5z/vgqHGIICpxD9SCQBCVWlCKdQKBoigyUfnud79bPP3008VTTz1VPPHkk8WLL76YBjaD3IjVV69gtdpqq6WB75RTTkmWFMsRFoRG9VwaiE033bT41a9+lbbxaR2hr5FgrgJjr39ROHC22WZL2B9yyCFhRel1xL86QBCVr7CIbx0jEESlY2xiSSDQBoFcyBCZKE/f+MY3UmbSGWaYofCdC2fjjcdmt7Ue7YkkYb4TZ2aBZk4mN8sss6QoopwRVwRQtN5H4KOPPkrXynVRPuH+++/v/YPGEdogEESlDRzxowMEgqh0AEzMDgSqEaA657qRsVYUSJ7yWzgysvnmmxdrr712qop7+eWXp/VfffXVQqZbycIeePDB4rPPPiu4j5ZZZpk2hEfl3euuu676sPG7FxBQQXuOOeZI+CtM+cknn/TCUWKX40MgiMr4EIrlEAiiEvdBINCPCKgjxKUktHmKKaYopGT/xS9+UfznP//px1617qFZUYTEsqIsssgiCevWPdvGP7O+Jiq/+93vknVTXa9aGnesF5AvvviiltXHWee3v/1t8fDDD3foyuVC7q0s19zH//73v9OzxPPE9+xSFmXI9eylqbMmAq6j9u6776a0C31RbT6ISkdXIeYHAn2IAKvLoYcemkKbDaISHJ199tmFys7R6oPATTfdVMw666yJpHCvhRWlPrj2ZC+9TVQQEmQhX+tjjz22+NrXvlZIzqhZ7ntHLwarjxhRzD777JXltGUsqayj5cRkrKx+E8eX2w477FCwlHbULKNZq25PPvlkeoHZeuutC4kmTb5vt92YVMJjzJjt0++8LC3faqu03muvvZZ2x1LIautZIinlsssuW3gx0vbaa6/0f/DTn/60ePzxx1N2YKRMYsrcHnrooYJbmsauvXbJJZekfTz/3PPtLa7rvCAqdYUzdhYI9AwBbzDnnHNOerghLNNNN12KAsoPn57tfWBubSDabbfd0kPVwBAJ9RrnPuhtomLwZanMLtUf/ODodB9komLgVr+LZaO9tu666yVxe14m2SPr56BBg1LBUjozU/79/PNj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008/7ci2fOutt4p2EQ2jLYaB9x6g3A7V4UkmGq0YUYkWKWvnCwQ++OADd//99wdys2Aa6tu3rxCIWKft37hxo6tQoYKQlHvuucedOHHCFxjZIA2BrEIADeeDDz7ojh496j766CNbDIPT7gFqvmGu/8tf/hL1bWhEJWqorKGfEPj5558dNYX69+/vihYtKmSC3CyTJ0/OtGno+PHjkpgOzc3FF18sOWD8hI2N1RDIKgTQLi5btiyrurd+EwSBYcOGueeffz7qszGiEjVU1tCvCODkunDhwkBuFggGKfxffPFF989//jNdp0XNoipVqgjxGT58uGlR0oWeNU50BCAqzz33XKKfpp1fJhG44447jKhkEkPbPYEReOONN1Kl7S9durTjn2bbtm3u//7v/8Ke+Q8//OBGjBghBIWCiq+88krYtrYh+xB499133ahRo1zbtm1d586d3QMPPOC++OKL0waAmrl79+6uffv2kotny5YtqdrgW8H1vffeex3O0BMmTBDVdCgfp//+97/uySefFPU1/en9ox0SmUY1+aycsAnZf+ihh2S83JvIsWPH3MMPP+wwQ4LBokWLxH8qFB461lh/GlGJNaKJ2Z8RlcS8rnZWMUYA09CGDRtkssmdO7cQkNq1a8uDnge+VzZt2uSqVasW0KLoxOBtY9+zH4G9e/c6kgCiISPyK1++/IHriB0cofJ3jx49ZD3tyHSsn4/MeyQw6CuvvDLQhu26UIfq1Vc3B9px7Tt16hTYfsYZZ8j3M8/M7cjrg7z66quyDvKUVUIoPiH6nPc333wjh2nTpo0c99xzz3WHDh0SYpY/f35HTa3sEiMq2YW0v49jRMXf189GnwMIHDlyxM2aNStgGsIBlwrHq1atcvfdd58rUKCA5EXBedYkfhDo1auXTMz4HSFkA27ZsmWqdThWQzogoWjBcPBEu6JERCfxdu3ayTq0KVs2bxFtCNoS2p1fubL7+uuv5RhoXFh36WWXus2bN0stKko+aH+ff/65VMTmNwkKvYKmheOF0nBAjt966y336aefeneR7xCRt99+W8auG3/77TfxtTpw4IAkFCQkn2Pi3H348GH3v//9T8a2Z8+eVPmFKIT53nvvuU8++US7kk8ql+N7hYAj55ERMaKSEdSSbx8jKsl3ze2MY4gAb6LkYsmXL19g8uGtNdhUEMNDWlcZRODG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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**5. sklearn中常见的几个线性回归类库：**\n",
    "\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:21:36.589506Z",
     "start_time": "2020-06-16T01:21:34.243221Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import pandas_profiling as pp \n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "#全部行都能输出\n",
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = \"all\"\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:21:36.939352Z",
     "start_time": "2020-06-16T01:21:36.858414Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>station</th>\n",
       "      <th>Date</th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>Present_Tmin</th>\n",
       "      <th>LDAPS_RHmin</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_Tmin_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>...</th>\n",
       "      <th>LDAPS_PPT2</th>\n",
       "      <th>LDAPS_PPT3</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "      <th>Next_Tmax</th>\n",
       "      <th>Next_Tmin</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.0</td>\n",
       "      <td>6/30/2013</td>\n",
       "      <td>28.7</td>\n",
       "      <td>21.4</td>\n",
       "      <td>58.255688</td>\n",
       "      <td>91.116364</td>\n",
       "      <td>28.074101</td>\n",
       "      <td>23.006936</td>\n",
       "      <td>6.818887</td>\n",
       "      <td>69.451805</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.6046</td>\n",
       "      <td>126.991</td>\n",
       "      <td>212.3350</td>\n",
       "      <td>2.7850</td>\n",
       "      <td>5992.895996</td>\n",
       "      <td>29.1</td>\n",
       "      <td>21.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2.0</td>\n",
       "      <td>6/30/2013</td>\n",
       "      <td>31.9</td>\n",
       "      <td>21.6</td>\n",
       "      <td>52.263397</td>\n",
       "      <td>90.604721</td>\n",
       "      <td>29.850689</td>\n",
       "      <td>24.035009</td>\n",
       "      <td>5.691890</td>\n",
       "      <td>51.937448</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.6046</td>\n",
       "      <td>127.032</td>\n",
       "      <td>44.7624</td>\n",
       "      <td>0.5141</td>\n",
       "      <td>5869.312500</td>\n",
       "      <td>30.5</td>\n",
       "      <td>22.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3.0</td>\n",
       "      <td>6/30/2013</td>\n",
       "      <td>31.6</td>\n",
       "      <td>23.3</td>\n",
       "      <td>48.690479</td>\n",
       "      <td>83.973587</td>\n",
       "      <td>30.091292</td>\n",
       "      <td>24.565633</td>\n",
       "      <td>6.138224</td>\n",
       "      <td>20.573050</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.5776</td>\n",
       "      <td>127.058</td>\n",
       "      <td>33.3068</td>\n",
       "      <td>0.2661</td>\n",
       "      <td>5863.555664</td>\n",
       "      <td>31.1</td>\n",
       "      <td>23.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4.0</td>\n",
       "      <td>6/30/2013</td>\n",
       "      <td>32.0</td>\n",
       "      <td>23.4</td>\n",
       "      <td>58.239788</td>\n",
       "      <td>96.483688</td>\n",
       "      <td>29.704629</td>\n",
       "      <td>23.326177</td>\n",
       "      <td>5.650050</td>\n",
       "      <td>65.727144</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.6450</td>\n",
       "      <td>127.022</td>\n",
       "      <td>45.7160</td>\n",
       "      <td>2.5348</td>\n",
       "      <td>5856.964844</td>\n",
       "      <td>31.7</td>\n",
       "      <td>24.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5.0</td>\n",
       "      <td>6/30/2013</td>\n",
       "      <td>31.4</td>\n",
       "      <td>21.9</td>\n",
       "      <td>56.174095</td>\n",
       "      <td>90.155128</td>\n",
       "      <td>29.113934</td>\n",
       "      <td>23.486480</td>\n",
       "      <td>5.735004</td>\n",
       "      <td>107.965535</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.5507</td>\n",
       "      <td>127.135</td>\n",
       "      <td>35.0380</td>\n",
       "      <td>0.5055</td>\n",
       "      <td>5859.552246</td>\n",
       "      <td>31.2</td>\n",
       "      <td>22.5</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 25 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   station       Date  Present_Tmax  Present_Tmin  LDAPS_RHmin  LDAPS_RHmax  \\\n",
       "0      1.0  6/30/2013          28.7          21.4    58.255688    91.116364   \n",
       "1      2.0  6/30/2013          31.9          21.6    52.263397    90.604721   \n",
       "2      3.0  6/30/2013          31.6          23.3    48.690479    83.973587   \n",
       "3      4.0  6/30/2013          32.0          23.4    58.239788    96.483688   \n",
       "4      5.0  6/30/2013          31.4          21.9    56.174095    90.155128   \n",
       "\n",
       "   LDAPS_Tmax_lapse  LDAPS_Tmin_lapse  LDAPS_WS    LDAPS_LH  ...  LDAPS_PPT2  \\\n",
       "0         28.074101         23.006936  6.818887   69.451805  ...         0.0   \n",
       "1         29.850689         24.035009  5.691890   51.937448  ...         0.0   \n",
       "2         30.091292         24.565633  6.138224   20.573050  ...         0.0   \n",
       "3         29.704629         23.326177  5.650050   65.727144  ...         0.0   \n",
       "4         29.113934         23.486480  5.735004  107.965535  ...         0.0   \n",
       "\n",
       "   LDAPS_PPT3  LDAPS_PPT4      lat      lon       DEM   Slope  \\\n",
       "0         0.0         0.0  37.6046  126.991  212.3350  2.7850   \n",
       "1         0.0         0.0  37.6046  127.032   44.7624  0.5141   \n",
       "2         0.0         0.0  37.5776  127.058   33.3068  0.2661   \n",
       "3         0.0         0.0  37.6450  127.022   45.7160  2.5348   \n",
       "4         0.0         0.0  37.5507  127.135   35.0380  0.5055   \n",
       "\n",
       "   Solar radiation  Next_Tmax  Next_Tmin  \n",
       "0      5992.895996       29.1       21.2  \n",
       "1      5869.312500       30.5       22.5  \n",
       "2      5863.555664       31.1       23.9  \n",
       "3      5856.964844       31.7       24.3  \n",
       "4      5859.552246       31.2       22.5  \n",
       "\n",
       "[5 rows x 25 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Data = pd.read_csv(r\"Dataset.csv\")\n",
    "Data.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据探索"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 基本统计信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:12:45.892284Z",
     "start_time": "2020-06-16T00:12:45.810809Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>station</th>\n",
       "      <td>7750.0</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>7.211568</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>13.000000</td>\n",
       "      <td>19.000000</td>\n",
       "      <td>25.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Present_Tmax</th>\n",
       "      <td>7682.0</td>\n",
       "      <td>29.768211</td>\n",
       "      <td>2.969999</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>27.800000</td>\n",
       "      <td>29.900000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>37.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Present_Tmin</th>\n",
       "      <td>7682.0</td>\n",
       "      <td>23.225059</td>\n",
       "      <td>2.413961</td>\n",
       "      <td>11.300000</td>\n",
       "      <td>21.700000</td>\n",
       "      <td>23.400000</td>\n",
       "      <td>24.900000</td>\n",
       "      <td>29.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_RHmin</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>56.759372</td>\n",
       "      <td>14.668111</td>\n",
       "      <td>19.794666</td>\n",
       "      <td>45.963543</td>\n",
       "      <td>55.039024</td>\n",
       "      <td>67.190056</td>\n",
       "      <td>98.524734</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>88.374804</td>\n",
       "      <td>7.192004</td>\n",
       "      <td>58.936283</td>\n",
       "      <td>84.222862</td>\n",
       "      <td>89.793480</td>\n",
       "      <td>93.743629</td>\n",
       "      <td>100.000153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>29.613447</td>\n",
       "      <td>2.947191</td>\n",
       "      <td>17.624954</td>\n",
       "      <td>27.673499</td>\n",
       "      <td>29.703426</td>\n",
       "      <td>31.710450</td>\n",
       "      <td>38.542255</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_Tmin_lapse</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>23.512589</td>\n",
       "      <td>2.345347</td>\n",
       "      <td>14.272646</td>\n",
       "      <td>22.089739</td>\n",
       "      <td>23.760199</td>\n",
       "      <td>25.152909</td>\n",
       "      <td>29.619342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>7.097875</td>\n",
       "      <td>2.183836</td>\n",
       "      <td>2.882580</td>\n",
       "      <td>5.678705</td>\n",
       "      <td>6.547470</td>\n",
       "      <td>8.032276</td>\n",
       "      <td>21.857621</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>62.505019</td>\n",
       "      <td>33.730589</td>\n",
       "      <td>-13.603212</td>\n",
       "      <td>37.266753</td>\n",
       "      <td>56.865482</td>\n",
       "      <td>84.223616</td>\n",
       "      <td>213.414006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.368774</td>\n",
       "      <td>0.262458</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.146654</td>\n",
       "      <td>0.315697</td>\n",
       "      <td>0.575489</td>\n",
       "      <td>0.967277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.356080</td>\n",
       "      <td>0.258061</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.140615</td>\n",
       "      <td>0.312421</td>\n",
       "      <td>0.558694</td>\n",
       "      <td>0.968353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.318404</td>\n",
       "      <td>0.250362</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.101388</td>\n",
       "      <td>0.262555</td>\n",
       "      <td>0.496703</td>\n",
       "      <td>0.983789</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.299191</td>\n",
       "      <td>0.254348</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.081532</td>\n",
       "      <td>0.227664</td>\n",
       "      <td>0.499489</td>\n",
       "      <td>0.974710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.591995</td>\n",
       "      <td>1.945768</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.052525</td>\n",
       "      <td>23.701544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_PPT2</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.485003</td>\n",
       "      <td>1.762807</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.018364</td>\n",
       "      <td>21.621661</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_PPT3</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.278200</td>\n",
       "      <td>1.161809</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.007896</td>\n",
       "      <td>15.841235</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <td>7677.0</td>\n",
       "      <td>0.269407</td>\n",
       "      <td>1.206214</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000041</td>\n",
       "      <td>16.655469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lat</th>\n",
       "      <td>7752.0</td>\n",
       "      <td>37.544722</td>\n",
       "      <td>0.050352</td>\n",
       "      <td>37.456200</td>\n",
       "      <td>37.510200</td>\n",
       "      <td>37.550700</td>\n",
       "      <td>37.577600</td>\n",
       "      <td>37.645000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lon</th>\n",
       "      <td>7752.0</td>\n",
       "      <td>126.991397</td>\n",
       "      <td>0.079435</td>\n",
       "      <td>126.826000</td>\n",
       "      <td>126.937000</td>\n",
       "      <td>126.995000</td>\n",
       "      <td>127.042000</td>\n",
       "      <td>127.135000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DEM</th>\n",
       "      <td>7752.0</td>\n",
       "      <td>61.867972</td>\n",
       "      <td>54.279780</td>\n",
       "      <td>12.370000</td>\n",
       "      <td>28.700000</td>\n",
       "      <td>45.716000</td>\n",
       "      <td>59.832400</td>\n",
       "      <td>212.335000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Slope</th>\n",
       "      <td>7752.0</td>\n",
       "      <td>1.257048</td>\n",
       "      <td>1.370444</td>\n",
       "      <td>0.098475</td>\n",
       "      <td>0.271300</td>\n",
       "      <td>0.618000</td>\n",
       "      <td>1.767800</td>\n",
       "      <td>5.178230</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Solar radiation</th>\n",
       "      <td>7752.0</td>\n",
       "      <td>5341.502803</td>\n",
       "      <td>429.158867</td>\n",
       "      <td>4329.520508</td>\n",
       "      <td>4999.018555</td>\n",
       "      <td>5436.345215</td>\n",
       "      <td>5728.316406</td>\n",
       "      <td>5992.895996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Next_Tmax</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>30.274887</td>\n",
       "      <td>3.128010</td>\n",
       "      <td>17.400000</td>\n",
       "      <td>28.200000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.600000</td>\n",
       "      <td>38.900000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Next_Tmin</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>22.932220</td>\n",
       "      <td>2.487613</td>\n",
       "      <td>11.300000</td>\n",
       "      <td>21.300000</td>\n",
       "      <td>23.100000</td>\n",
       "      <td>24.600000</td>\n",
       "      <td>29.800000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   count         mean         std          min          25%  \\\n",
       "station           7750.0    13.000000    7.211568     1.000000     7.000000   \n",
       "Present_Tmax      7682.0    29.768211    2.969999    20.000000    27.800000   \n",
       "Present_Tmin      7682.0    23.225059    2.413961    11.300000    21.700000   \n",
       "LDAPS_RHmin       7677.0    56.759372   14.668111    19.794666    45.963543   \n",
       "LDAPS_RHmax       7677.0    88.374804    7.192004    58.936283    84.222862   \n",
       "LDAPS_Tmax_lapse  7677.0    29.613447    2.947191    17.624954    27.673499   \n",
       "LDAPS_Tmin_lapse  7677.0    23.512589    2.345347    14.272646    22.089739   \n",
       "LDAPS_WS          7677.0     7.097875    2.183836     2.882580     5.678705   \n",
       "LDAPS_LH          7677.0    62.505019   33.730589   -13.603212    37.266753   \n",
       "LDAPS_CC1         7677.0     0.368774    0.262458     0.000000     0.146654   \n",
       "LDAPS_CC2         7677.0     0.356080    0.258061     0.000000     0.140615   \n",
       "LDAPS_CC3         7677.0     0.318404    0.250362     0.000000     0.101388   \n",
       "LDAPS_CC4         7677.0     0.299191    0.254348     0.000000     0.081532   \n",
       "LDAPS_PPT1        7677.0     0.591995    1.945768     0.000000     0.000000   \n",
       "LDAPS_PPT2        7677.0     0.485003    1.762807     0.000000     0.000000   \n",
       "LDAPS_PPT3        7677.0     0.278200    1.161809     0.000000     0.000000   \n",
       "LDAPS_PPT4        7677.0     0.269407    1.206214     0.000000     0.000000   \n",
       "lat               7752.0    37.544722    0.050352    37.456200    37.510200   \n",
       "lon               7752.0   126.991397    0.079435   126.826000   126.937000   \n",
       "DEM               7752.0    61.867972   54.279780    12.370000    28.700000   \n",
       "Slope             7752.0     1.257048    1.370444     0.098475     0.271300   \n",
       "Solar radiation   7752.0  5341.502803  429.158867  4329.520508  4999.018555   \n",
       "Next_Tmax         7725.0    30.274887    3.128010    17.400000    28.200000   \n",
       "Next_Tmin         7725.0    22.932220    2.487613    11.300000    21.300000   \n",
       "\n",
       "                          50%          75%          max  \n",
       "station             13.000000    19.000000    25.000000  \n",
       "Present_Tmax        29.900000    32.000000    37.600000  \n",
       "Present_Tmin        23.400000    24.900000    29.900000  \n",
       "LDAPS_RHmin         55.039024    67.190056    98.524734  \n",
       "LDAPS_RHmax         89.793480    93.743629   100.000153  \n",
       "LDAPS_Tmax_lapse    29.703426    31.710450    38.542255  \n",
       "LDAPS_Tmin_lapse    23.760199    25.152909    29.619342  \n",
       "LDAPS_WS             6.547470     8.032276    21.857621  \n",
       "LDAPS_LH            56.865482    84.223616   213.414006  \n",
       "LDAPS_CC1            0.315697     0.575489     0.967277  \n",
       "LDAPS_CC2            0.312421     0.558694     0.968353  \n",
       "LDAPS_CC3            0.262555     0.496703     0.983789  \n",
       "LDAPS_CC4            0.227664     0.499489     0.974710  \n",
       "LDAPS_PPT1           0.000000     0.052525    23.701544  \n",
       "LDAPS_PPT2           0.000000     0.018364    21.621661  \n",
       "LDAPS_PPT3           0.000000     0.007896    15.841235  \n",
       "LDAPS_PPT4           0.000000     0.000041    16.655469  \n",
       "lat                 37.550700    37.577600    37.645000  \n",
       "lon                126.995000   127.042000   127.135000  \n",
       "DEM                 45.716000    59.832400   212.335000  \n",
       "Slope                0.618000     1.767800     5.178230  \n",
       "Solar radiation   5436.345215  5728.316406  5992.895996  \n",
       "Next_Tmax           30.500000    32.600000    38.900000  \n",
       "Next_Tmin           23.100000    24.600000    29.800000  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Data.describe().T "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:12:45.952260Z",
     "start_time": "2020-06-16T00:12:45.895274Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 7752 entries, 0 to 7751\n",
      "Data columns (total 25 columns):\n",
      " #   Column            Non-Null Count  Dtype  \n",
      "---  ------            --------------  -----  \n",
      " 0   station           7750 non-null   float64\n",
      " 1   Date              7750 non-null   object \n",
      " 2   Present_Tmax      7682 non-null   float64\n",
      " 3   Present_Tmin      7682 non-null   float64\n",
      " 4   LDAPS_RHmin       7677 non-null   float64\n",
      " 5   LDAPS_RHmax       7677 non-null   float64\n",
      " 6   LDAPS_Tmax_lapse  7677 non-null   float64\n",
      " 7   LDAPS_Tmin_lapse  7677 non-null   float64\n",
      " 8   LDAPS_WS          7677 non-null   float64\n",
      " 9   LDAPS_LH          7677 non-null   float64\n",
      " 10  LDAPS_CC1         7677 non-null   float64\n",
      " 11  LDAPS_CC2         7677 non-null   float64\n",
      " 12  LDAPS_CC3         7677 non-null   float64\n",
      " 13  LDAPS_CC4         7677 non-null   float64\n",
      " 14  LDAPS_PPT1        7677 non-null   float64\n",
      " 15  LDAPS_PPT2        7677 non-null   float64\n",
      " 16  LDAPS_PPT3        7677 non-null   float64\n",
      " 17  LDAPS_PPT4        7677 non-null   float64\n",
      " 18  lat               7752 non-null   float64\n",
      " 19  lon               7752 non-null   float64\n",
      " 20  DEM               7752 non-null   float64\n",
      " 21  Slope             7752 non-null   float64\n",
      " 22  Solar radiation   7752 non-null   float64\n",
      " 23  Next_Tmax         7725 non-null   float64\n",
      " 24  Next_Tmin         7725 non-null   float64\n",
      "dtypes: float64(24), object(1)\n",
      "memory usage: 1.5+ MB\n"
     ]
    }
   ],
   "source": [
    "Data.info() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 查看空值（5分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:12:46.101859Z",
     "start_time": "2020-06-16T00:12:45.955239Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "station              2\n",
       "Date                 2\n",
       "Present_Tmax        70\n",
       "Present_Tmin        70\n",
       "LDAPS_RHmin         75\n",
       "LDAPS_RHmax         75\n",
       "LDAPS_Tmax_lapse    75\n",
       "LDAPS_Tmin_lapse    75\n",
       "LDAPS_WS            75\n",
       "LDAPS_LH            75\n",
       "LDAPS_CC1           75\n",
       "LDAPS_CC2           75\n",
       "LDAPS_CC3           75\n",
       "LDAPS_CC4           75\n",
       "LDAPS_PPT1          75\n",
       "LDAPS_PPT2          75\n",
       "LDAPS_PPT3          75\n",
       "LDAPS_PPT4          75\n",
       "lat                  0\n",
       "lon                  0\n",
       "DEM                  0\n",
       "Slope                0\n",
       "Solar radiation      0\n",
       "Next_Tmax           27\n",
       "Next_Tmin           27\n",
       "dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Data.isna().sum() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:12:46.301511Z",
     "start_time": "2020-06-16T00:12:46.110848Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(27, 25)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 取出所有有空值的记录  （5分）\n",
    "a = Data.loc[:,['Next_Tmax','Next_Tmin']].isna().any(axis=1)\n",
    "null_data = Data[a]\n",
    "null_index = null_data.index\n",
    "\n",
    "Data = Data.drop(labels=null_index,axis=0)\n",
    "\n",
    "null_data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 查看每列数据的分布状态"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:12:55.448321Z",
     "start_time": "2020-06-16T00:12:46.308487Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='station', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Present_Tmax', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Present_Tmin', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_RHmin', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_RHmax', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_Tmax_lapse', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_Tmin_lapse', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_WS', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_LH', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_CC1', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_CC2', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_CC3', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_CC4', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_PPT1', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_PPT2', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_PPT3', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='LDAPS_PPT4', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='lat', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='lon', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='DEM', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Slope', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Solar radiation', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Next_Tmax', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n",
      "d:\\python39\\lib\\site-packages\\seaborn\\distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Next_Tmin', ylabel='Density'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xl\\AppData\\Local\\Temp/ipykernel_12696/2698981321.py:6: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.\n",
      "  plt.show()\n"
     ]
    }
   ],
   "source": [
    "# 绘制每列数据的直方图（分布频次）\n",
    "plot = Data.drop('Date',axis=1) # 删除'Date'列\n",
    "\n",
    "for I in plot.columns:\n",
    "    sns.distplot(plot[I]) \n",
    "    plt.show() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 生成数据概况报告"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:21.940528Z",
     "start_time": "2020-06-16T00:12:55.451319Z"
    },
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "# 生成整体数据概要\n",
    "#data_report=pp.ProfileReport(Data) \n",
    "#data_report\n",
    "\n",
    "# 也可以把生成的报告导出保存\n",
    "#data_report.to_file('report.html') \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据预处理"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 提取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:33:52.629282Z",
     "start_time": "2020-06-16T01:33:52.621285Z"
    }
   },
   "outputs": [],
   "source": [
    "# 由于本数据集的特殊性（有两个样本标签：次日最高气温和最低气温）\n",
    "#，本案例中我们只进行次日最高温预测--因此这里只选出与最高温预测相关的变量，作为建模要用的数据\n",
    "\n",
    "Max = Data[['Present_Tmax','LDAPS_RHmax','LDAPS_Tmax_lapse','LDAPS_WS','LDAPS_LH','LDAPS_CC1','LDAPS_CC2','LDAPS_CC3','LDAPS_CC4','LDAPS_PPT1','LDAPS_PPT4',\n",
    "          'lat','lon','DEM','Slope','Solar radiation','Next_Tmax']] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:33:56.575804Z",
     "start_time": "2020-06-16T01:33:56.551818Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "      <th>Next_Tmax</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>28.7</td>\n",
       "      <td>91.116364</td>\n",
       "      <td>28.074101</td>\n",
       "      <td>6.818887</td>\n",
       "      <td>69.451805</td>\n",
       "      <td>0.233947</td>\n",
       "      <td>0.203896</td>\n",
       "      <td>0.161697</td>\n",
       "      <td>0.130928</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.6046</td>\n",
       "      <td>126.991</td>\n",
       "      <td>212.3350</td>\n",
       "      <td>2.7850</td>\n",
       "      <td>5992.895996</td>\n",
       "      <td>29.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>31.9</td>\n",
       "      <td>90.604721</td>\n",
       "      <td>29.850689</td>\n",
       "      <td>5.691890</td>\n",
       "      <td>51.937448</td>\n",
       "      <td>0.225508</td>\n",
       "      <td>0.251771</td>\n",
       "      <td>0.159444</td>\n",
       "      <td>0.127727</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.6046</td>\n",
       "      <td>127.032</td>\n",
       "      <td>44.7624</td>\n",
       "      <td>0.5141</td>\n",
       "      <td>5869.312500</td>\n",
       "      <td>30.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>31.6</td>\n",
       "      <td>83.973587</td>\n",
       "      <td>30.091292</td>\n",
       "      <td>6.138224</td>\n",
       "      <td>20.573050</td>\n",
       "      <td>0.209344</td>\n",
       "      <td>0.257469</td>\n",
       "      <td>0.204091</td>\n",
       "      <td>0.142125</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.5776</td>\n",
       "      <td>127.058</td>\n",
       "      <td>33.3068</td>\n",
       "      <td>0.2661</td>\n",
       "      <td>5863.555664</td>\n",
       "      <td>31.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>32.0</td>\n",
       "      <td>96.483688</td>\n",
       "      <td>29.704629</td>\n",
       "      <td>5.650050</td>\n",
       "      <td>65.727144</td>\n",
       "      <td>0.216372</td>\n",
       "      <td>0.226002</td>\n",
       "      <td>0.161157</td>\n",
       "      <td>0.134249</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.6450</td>\n",
       "      <td>127.022</td>\n",
       "      <td>45.7160</td>\n",
       "      <td>2.5348</td>\n",
       "      <td>5856.964844</td>\n",
       "      <td>31.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>31.4</td>\n",
       "      <td>90.155128</td>\n",
       "      <td>29.113934</td>\n",
       "      <td>5.735004</td>\n",
       "      <td>107.965535</td>\n",
       "      <td>0.151407</td>\n",
       "      <td>0.249995</td>\n",
       "      <td>0.178892</td>\n",
       "      <td>0.170021</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>37.5507</td>\n",
       "      <td>127.135</td>\n",
       "      <td>35.0380</td>\n",
       "      <td>0.5055</td>\n",
       "      <td>5859.552246</td>\n",
       "      <td>31.2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse  LDAPS_WS    LDAPS_LH  \\\n",
       "0          28.7    91.116364         28.074101  6.818887   69.451805   \n",
       "1          31.9    90.604721         29.850689  5.691890   51.937448   \n",
       "2          31.6    83.973587         30.091292  6.138224   20.573050   \n",
       "3          32.0    96.483688         29.704629  5.650050   65.727144   \n",
       "4          31.4    90.155128         29.113934  5.735004  107.965535   \n",
       "\n",
       "   LDAPS_CC1  LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4  \\\n",
       "0   0.233947   0.203896   0.161697   0.130928         0.0         0.0   \n",
       "1   0.225508   0.251771   0.159444   0.127727         0.0         0.0   \n",
       "2   0.209344   0.257469   0.204091   0.142125         0.0         0.0   \n",
       "3   0.216372   0.226002   0.161157   0.134249         0.0         0.0   \n",
       "4   0.151407   0.249995   0.178892   0.170021         0.0         0.0   \n",
       "\n",
       "       lat      lon       DEM   Slope  Solar radiation  Next_Tmax  \n",
       "0  37.6046  126.991  212.3350  2.7850      5992.895996       29.1  \n",
       "1  37.6046  127.032   44.7624  0.5141      5869.312500       30.5  \n",
       "2  37.5776  127.058   33.3068  0.2661      5863.555664       31.1  \n",
       "3  37.6450  127.022   45.7160  2.5348      5856.964844       31.7  \n",
       "4  37.5507  127.135   35.0380  0.5055      5859.552246       31.2  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Max.head() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:22.290321Z",
     "start_time": "2020-06-16T00:15:22.130413Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 7725 entries, 0 to 7751\n",
      "Data columns (total 17 columns):\n",
      " #   Column            Non-Null Count  Dtype  \n",
      "---  ------            --------------  -----  \n",
      " 0   Present_Tmax      7665 non-null   float64\n",
      " 1   LDAPS_RHmax       7650 non-null   float64\n",
      " 2   LDAPS_Tmax_lapse  7650 non-null   float64\n",
      " 3   LDAPS_WS          7650 non-null   float64\n",
      " 4   LDAPS_LH          7650 non-null   float64\n",
      " 5   LDAPS_CC1         7650 non-null   float64\n",
      " 6   LDAPS_CC2         7650 non-null   float64\n",
      " 7   LDAPS_CC3         7650 non-null   float64\n",
      " 8   LDAPS_CC4         7650 non-null   float64\n",
      " 9   LDAPS_PPT1        7650 non-null   float64\n",
      " 10  LDAPS_PPT4        7650 non-null   float64\n",
      " 11  lat               7725 non-null   float64\n",
      " 12  lon               7725 non-null   float64\n",
      " 13  DEM               7725 non-null   float64\n",
      " 14  Slope             7725 non-null   float64\n",
      " 15  Solar radiation   7725 non-null   float64\n",
      " 16  Next_Tmax         7725 non-null   float64\n",
      "dtypes: float64(17)\n",
      "memory usage: 1.1 MB\n"
     ]
    }
   ],
   "source": [
    "Max.info() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:22.570160Z",
     "start_time": "2020-06-16T00:15:22.293320Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Present_Tmax</th>\n",
       "      <td>7665.0</td>\n",
       "      <td>29.769563</td>\n",
       "      <td>2.970766</td>\n",
       "      <td>20.000000</td>\n",
       "      <td>27.800000</td>\n",
       "      <td>29.900000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>37.600000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>88.369140</td>\n",
       "      <td>7.199065</td>\n",
       "      <td>58.936283</td>\n",
       "      <td>84.212961</td>\n",
       "      <td>89.792492</td>\n",
       "      <td>93.743328</td>\n",
       "      <td>100.000153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>29.616253</td>\n",
       "      <td>2.946612</td>\n",
       "      <td>17.624954</td>\n",
       "      <td>27.675091</td>\n",
       "      <td>29.705437</td>\n",
       "      <td>31.710506</td>\n",
       "      <td>38.542255</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>7.096739</td>\n",
       "      <td>2.182457</td>\n",
       "      <td>2.882580</td>\n",
       "      <td>5.678962</td>\n",
       "      <td>6.547838</td>\n",
       "      <td>8.030117</td>\n",
       "      <td>21.857621</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>62.468599</td>\n",
       "      <td>33.720451</td>\n",
       "      <td>-13.603212</td>\n",
       "      <td>37.227417</td>\n",
       "      <td>56.854134</td>\n",
       "      <td>84.223234</td>\n",
       "      <td>213.414006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>0.368482</td>\n",
       "      <td>0.262328</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.146551</td>\n",
       "      <td>0.315185</td>\n",
       "      <td>0.573970</td>\n",
       "      <td>0.967277</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>0.355797</td>\n",
       "      <td>0.257919</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.140619</td>\n",
       "      <td>0.311891</td>\n",
       "      <td>0.557436</td>\n",
       "      <td>0.968353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>0.318133</td>\n",
       "      <td>0.250098</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.101682</td>\n",
       "      <td>0.262414</td>\n",
       "      <td>0.496507</td>\n",
       "      <td>0.983789</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>0.299092</td>\n",
       "      <td>0.254199</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.081476</td>\n",
       "      <td>0.227764</td>\n",
       "      <td>0.499391</td>\n",
       "      <td>0.974710</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>0.591684</td>\n",
       "      <td>1.945778</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.052353</td>\n",
       "      <td>23.701544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <td>7650.0</td>\n",
       "      <td>0.269440</td>\n",
       "      <td>1.205851</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000045</td>\n",
       "      <td>16.655469</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lat</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>37.544755</td>\n",
       "      <td>0.050386</td>\n",
       "      <td>37.456200</td>\n",
       "      <td>37.510200</td>\n",
       "      <td>37.550700</td>\n",
       "      <td>37.577600</td>\n",
       "      <td>37.645000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lon</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>126.991370</td>\n",
       "      <td>0.079347</td>\n",
       "      <td>126.826000</td>\n",
       "      <td>126.937000</td>\n",
       "      <td>126.995000</td>\n",
       "      <td>127.042000</td>\n",
       "      <td>127.135000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DEM</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>61.926856</td>\n",
       "      <td>54.331701</td>\n",
       "      <td>12.370000</td>\n",
       "      <td>28.700000</td>\n",
       "      <td>45.716000</td>\n",
       "      <td>59.832400</td>\n",
       "      <td>212.335000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Slope</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>1.258725</td>\n",
       "      <td>1.371331</td>\n",
       "      <td>0.098475</td>\n",
       "      <td>0.271300</td>\n",
       "      <td>0.618000</td>\n",
       "      <td>1.767800</td>\n",
       "      <td>5.178230</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Solar radiation</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>5342.066031</td>\n",
       "      <td>429.235277</td>\n",
       "      <td>4329.520508</td>\n",
       "      <td>4999.018555</td>\n",
       "      <td>5437.534180</td>\n",
       "      <td>5728.624512</td>\n",
       "      <td>5992.895996</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Next_Tmax</th>\n",
       "      <td>7725.0</td>\n",
       "      <td>30.274887</td>\n",
       "      <td>3.128010</td>\n",
       "      <td>17.400000</td>\n",
       "      <td>28.200000</td>\n",
       "      <td>30.500000</td>\n",
       "      <td>32.600000</td>\n",
       "      <td>38.900000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   count         mean         std          min          25%  \\\n",
       "Present_Tmax      7665.0    29.769563    2.970766    20.000000    27.800000   \n",
       "LDAPS_RHmax       7650.0    88.369140    7.199065    58.936283    84.212961   \n",
       "LDAPS_Tmax_lapse  7650.0    29.616253    2.946612    17.624954    27.675091   \n",
       "LDAPS_WS          7650.0     7.096739    2.182457     2.882580     5.678962   \n",
       "LDAPS_LH          7650.0    62.468599   33.720451   -13.603212    37.227417   \n",
       "LDAPS_CC1         7650.0     0.368482    0.262328     0.000000     0.146551   \n",
       "LDAPS_CC2         7650.0     0.355797    0.257919     0.000000     0.140619   \n",
       "LDAPS_CC3         7650.0     0.318133    0.250098     0.000000     0.101682   \n",
       "LDAPS_CC4         7650.0     0.299092    0.254199     0.000000     0.081476   \n",
       "LDAPS_PPT1        7650.0     0.591684    1.945778     0.000000     0.000000   \n",
       "LDAPS_PPT4        7650.0     0.269440    1.205851     0.000000     0.000000   \n",
       "lat               7725.0    37.544755    0.050386    37.456200    37.510200   \n",
       "lon               7725.0   126.991370    0.079347   126.826000   126.937000   \n",
       "DEM               7725.0    61.926856   54.331701    12.370000    28.700000   \n",
       "Slope             7725.0     1.258725    1.371331     0.098475     0.271300   \n",
       "Solar radiation   7725.0  5342.066031  429.235277  4329.520508  4999.018555   \n",
       "Next_Tmax         7725.0    30.274887    3.128010    17.400000    28.200000   \n",
       "\n",
       "                          50%          75%          max  \n",
       "Present_Tmax        29.900000    32.000000    37.600000  \n",
       "LDAPS_RHmax         89.792492    93.743328   100.000153  \n",
       "LDAPS_Tmax_lapse    29.705437    31.710506    38.542255  \n",
       "LDAPS_WS             6.547838     8.030117    21.857621  \n",
       "LDAPS_LH            56.854134    84.223234   213.414006  \n",
       "LDAPS_CC1            0.315185     0.573970     0.967277  \n",
       "LDAPS_CC2            0.311891     0.557436     0.968353  \n",
       "LDAPS_CC3            0.262414     0.496507     0.983789  \n",
       "LDAPS_CC4            0.227764     0.499391     0.974710  \n",
       "LDAPS_PPT1           0.000000     0.052353    23.701544  \n",
       "LDAPS_PPT4           0.000000     0.000045    16.655469  \n",
       "lat                 37.550700    37.577600    37.645000  \n",
       "lon                126.995000   127.042000   127.135000  \n",
       "DEM                 45.716000    59.832400   212.335000  \n",
       "Slope                0.618000     1.767800     5.178230  \n",
       "Solar radiation   5437.534180  5728.624512  5992.895996  \n",
       "Next_Tmax           30.500000    32.600000    38.900000  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Max.describe().T"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 填充缺失值（10分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:34:07.620687Z",
     "start_time": "2020-06-16T01:34:07.603697Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "      <th>Next_Tmax</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>28.7</td>\n",
       "      <td>91.116364</td>\n",
       "      <td>28.074101</td>\n",
       "      <td>6.818887</td>\n",
       "      <td>69.451805</td>\n",
       "      <td>0.233947</td>\n",
       "      <td>0.203896</td>\n",
       "      <td>0.161697</td>\n",
       "      <td>0.130928</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.6046</td>\n",
       "      <td>126.991</td>\n",
       "      <td>212.3350</td>\n",
       "      <td>2.785000</td>\n",
       "      <td>5992.895996</td>\n",
       "      <td>29.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>31.9</td>\n",
       "      <td>90.604721</td>\n",
       "      <td>29.850689</td>\n",
       "      <td>5.691890</td>\n",
       "      <td>51.937448</td>\n",
       "      <td>0.225508</td>\n",
       "      <td>0.251771</td>\n",
       "      <td>0.159444</td>\n",
       "      <td>0.127727</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.6046</td>\n",
       "      <td>127.032</td>\n",
       "      <td>44.7624</td>\n",
       "      <td>0.514100</td>\n",
       "      <td>5869.312500</td>\n",
       "      <td>30.5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>31.6</td>\n",
       "      <td>83.973587</td>\n",
       "      <td>30.091292</td>\n",
       "      <td>6.138224</td>\n",
       "      <td>20.573050</td>\n",
       "      <td>0.209344</td>\n",
       "      <td>0.257469</td>\n",
       "      <td>0.204091</td>\n",
       "      <td>0.142125</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.5776</td>\n",
       "      <td>127.058</td>\n",
       "      <td>33.3068</td>\n",
       "      <td>0.266100</td>\n",
       "      <td>5863.555664</td>\n",
       "      <td>31.1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>32.0</td>\n",
       "      <td>96.483688</td>\n",
       "      <td>29.704629</td>\n",
       "      <td>5.650050</td>\n",
       "      <td>65.727144</td>\n",
       "      <td>0.216372</td>\n",
       "      <td>0.226002</td>\n",
       "      <td>0.161157</td>\n",
       "      <td>0.134249</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.6450</td>\n",
       "      <td>127.022</td>\n",
       "      <td>45.7160</td>\n",
       "      <td>2.534800</td>\n",
       "      <td>5856.964844</td>\n",
       "      <td>31.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>31.4</td>\n",
       "      <td>90.155128</td>\n",
       "      <td>29.113934</td>\n",
       "      <td>5.735004</td>\n",
       "      <td>107.965535</td>\n",
       "      <td>0.151407</td>\n",
       "      <td>0.249995</td>\n",
       "      <td>0.178892</td>\n",
       "      <td>0.170021</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.5507</td>\n",
       "      <td>127.135</td>\n",
       "      <td>35.0380</td>\n",
       "      <td>0.505500</td>\n",
       "      <td>5859.552246</td>\n",
       "      <td>31.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7747</th>\n",
       "      <td>23.3</td>\n",
       "      <td>78.869858</td>\n",
       "      <td>26.352081</td>\n",
       "      <td>6.148918</td>\n",
       "      <td>72.058294</td>\n",
       "      <td>0.030034</td>\n",
       "      <td>0.081035</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.5372</td>\n",
       "      <td>126.891</td>\n",
       "      <td>15.5876</td>\n",
       "      <td>0.155400</td>\n",
       "      <td>4443.313965</td>\n",
       "      <td>28.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7748</th>\n",
       "      <td>23.3</td>\n",
       "      <td>77.294975</td>\n",
       "      <td>27.010193</td>\n",
       "      <td>6.542819</td>\n",
       "      <td>47.241457</td>\n",
       "      <td>0.035874</td>\n",
       "      <td>0.074962</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.5237</td>\n",
       "      <td>126.909</td>\n",
       "      <td>17.2956</td>\n",
       "      <td>0.222300</td>\n",
       "      <td>4438.373535</td>\n",
       "      <td>28.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7749</th>\n",
       "      <td>23.2</td>\n",
       "      <td>77.243744</td>\n",
       "      <td>27.939516</td>\n",
       "      <td>7.289264</td>\n",
       "      <td>9.090034</td>\n",
       "      <td>0.048954</td>\n",
       "      <td>0.059869</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000796</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.5237</td>\n",
       "      <td>126.970</td>\n",
       "      <td>19.5844</td>\n",
       "      <td>0.271300</td>\n",
       "      <td>4451.345215</td>\n",
       "      <td>27.8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7750</th>\n",
       "      <td>20.0</td>\n",
       "      <td>58.936283</td>\n",
       "      <td>17.624954</td>\n",
       "      <td>2.882580</td>\n",
       "      <td>-13.603212</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>37.4562</td>\n",
       "      <td>126.826</td>\n",
       "      <td>12.3700</td>\n",
       "      <td>0.098475</td>\n",
       "      <td>4329.520508</td>\n",
       "      <td>17.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7751</th>\n",
       "      <td>37.6</td>\n",
       "      <td>100.000153</td>\n",
       "      <td>38.542255</td>\n",
       "      <td>21.857621</td>\n",
       "      <td>213.414006</td>\n",
       "      <td>0.967277</td>\n",
       "      <td>0.968353</td>\n",
       "      <td>0.983789</td>\n",
       "      <td>0.974710</td>\n",
       "      <td>23.701544</td>\n",
       "      <td>16.655469</td>\n",
       "      <td>37.6450</td>\n",
       "      <td>127.135</td>\n",
       "      <td>212.3350</td>\n",
       "      <td>5.178230</td>\n",
       "      <td>5992.895996</td>\n",
       "      <td>38.9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>7725 rows × 17 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse   LDAPS_WS    LDAPS_LH  \\\n",
       "0             28.7    91.116364         28.074101   6.818887   69.451805   \n",
       "1             31.9    90.604721         29.850689   5.691890   51.937448   \n",
       "2             31.6    83.973587         30.091292   6.138224   20.573050   \n",
       "3             32.0    96.483688         29.704629   5.650050   65.727144   \n",
       "4             31.4    90.155128         29.113934   5.735004  107.965535   \n",
       "...            ...          ...               ...        ...         ...   \n",
       "7747          23.3    78.869858         26.352081   6.148918   72.058294   \n",
       "7748          23.3    77.294975         27.010193   6.542819   47.241457   \n",
       "7749          23.2    77.243744         27.939516   7.289264    9.090034   \n",
       "7750          20.0    58.936283         17.624954   2.882580  -13.603212   \n",
       "7751          37.6   100.000153         38.542255  21.857621  213.414006   \n",
       "\n",
       "      LDAPS_CC1  LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4  \\\n",
       "0      0.233947   0.203896   0.161697   0.130928    0.000000    0.000000   \n",
       "1      0.225508   0.251771   0.159444   0.127727    0.000000    0.000000   \n",
       "2      0.209344   0.257469   0.204091   0.142125    0.000000    0.000000   \n",
       "3      0.216372   0.226002   0.161157   0.134249    0.000000    0.000000   \n",
       "4      0.151407   0.249995   0.178892   0.170021    0.000000    0.000000   \n",
       "...         ...        ...        ...        ...         ...         ...   \n",
       "7747   0.030034   0.081035   0.000000   0.000000    0.000000    0.000000   \n",
       "7748   0.035874   0.074962   0.000000   0.000000    0.000000    0.000000   \n",
       "7749   0.048954   0.059869   0.000000   0.000796    0.000000    0.000000   \n",
       "7750   0.000000   0.000000   0.000000   0.000000    0.000000    0.000000   \n",
       "7751   0.967277   0.968353   0.983789   0.974710   23.701544   16.655469   \n",
       "\n",
       "          lat      lon       DEM     Slope  Solar radiation  Next_Tmax  \n",
       "0     37.6046  126.991  212.3350  2.785000      5992.895996       29.1  \n",
       "1     37.6046  127.032   44.7624  0.514100      5869.312500       30.5  \n",
       "2     37.5776  127.058   33.3068  0.266100      5863.555664       31.1  \n",
       "3     37.6450  127.022   45.7160  2.534800      5856.964844       31.7  \n",
       "4     37.5507  127.135   35.0380  0.505500      5859.552246       31.2  \n",
       "...       ...      ...       ...       ...              ...        ...  \n",
       "7747  37.5372  126.891   15.5876  0.155400      4443.313965       28.3  \n",
       "7748  37.5237  126.909   17.2956  0.222300      4438.373535       28.6  \n",
       "7749  37.5237  126.970   19.5844  0.271300      4451.345215       27.8  \n",
       "7750  37.4562  126.826   12.3700  0.098475      4329.520508       17.4  \n",
       "7751  37.6450  127.135  212.3350  5.178230      5992.895996       38.9  \n",
       "\n",
       "[7725 rows x 17 columns]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 用每列的均值填充其缺失值\n",
    "mean = Max.iloc[:,:16].mean()\n",
    "dic = dict(mean)\n",
    "Max = Max.fillna(dic)\n",
    "Max"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:34:10.245846Z",
     "start_time": "2020-06-16T01:34:10.235840Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Present_Tmax        0\n",
       "LDAPS_RHmax         0\n",
       "LDAPS_Tmax_lapse    0\n",
       "LDAPS_WS            0\n",
       "LDAPS_LH            0\n",
       "LDAPS_CC1           0\n",
       "LDAPS_CC2           0\n",
       "LDAPS_CC3           0\n",
       "LDAPS_CC4           0\n",
       "LDAPS_PPT1          0\n",
       "LDAPS_PPT4          0\n",
       "lat                 0\n",
       "lon                 0\n",
       "DEM                 0\n",
       "Slope               0\n",
       "Solar radiation     0\n",
       "Next_Tmax           0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Max.isna().sum() "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 标准化处理连续型特征"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T02:15:24.140777Z",
     "start_time": "2020-06-16T02:15:24.099800Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "      <th>Next_Tmax</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.361459</td>\n",
       "      <td>0.383500</td>\n",
       "      <td>-0.525958</td>\n",
       "      <td>-0.127942</td>\n",
       "      <td>0.208117</td>\n",
       "      <td>-0.515389</td>\n",
       "      <td>-0.591867</td>\n",
       "      <td>-0.628602</td>\n",
       "      <td>-0.664822</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>1.516353</td>\n",
       "      <td>-0.375626</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.719982</td>\n",
       "      <td>0.312077</td>\n",
       "      <td>0.079955</td>\n",
       "      <td>-0.646891</td>\n",
       "      <td>-0.313855</td>\n",
       "      <td>-0.547719</td>\n",
       "      <td>-0.405324</td>\n",
       "      <td>-0.637654</td>\n",
       "      <td>-0.677477</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>0.512084</td>\n",
       "      <td>-0.315940</td>\n",
       "      <td>-0.543030</td>\n",
       "      <td>1.228419</td>\n",
       "      <td>0.071972</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.618597</td>\n",
       "      <td>-0.613599</td>\n",
       "      <td>0.162014</td>\n",
       "      <td>-0.441367</td>\n",
       "      <td>-1.248595</td>\n",
       "      <td>-0.609644</td>\n",
       "      <td>-0.383122</td>\n",
       "      <td>-0.458249</td>\n",
       "      <td>-0.620556</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>0.839780</td>\n",
       "      <td>-0.526799</td>\n",
       "      <td>-0.723888</td>\n",
       "      <td>1.215006</td>\n",
       "      <td>0.263799</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.753777</td>\n",
       "      <td>1.132753</td>\n",
       "      <td>0.030141</td>\n",
       "      <td>-0.666157</td>\n",
       "      <td>0.097113</td>\n",
       "      <td>-0.582719</td>\n",
       "      <td>-0.505730</td>\n",
       "      <td>-0.630769</td>\n",
       "      <td>-0.651695</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>0.386047</td>\n",
       "      <td>-0.298388</td>\n",
       "      <td>0.930598</td>\n",
       "      <td>1.199650</td>\n",
       "      <td>0.455627</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.551007</td>\n",
       "      <td>0.249316</td>\n",
       "      <td>-0.171318</td>\n",
       "      <td>-0.627038</td>\n",
       "      <td>1.355925</td>\n",
       "      <td>-0.831594</td>\n",
       "      <td>-0.412244</td>\n",
       "      <td>-0.559505</td>\n",
       "      <td>-0.510272</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>-0.494934</td>\n",
       "      <td>-0.549302</td>\n",
       "      <td>1.205678</td>\n",
       "      <td>0.295771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7720</th>\n",
       "      <td>-2.186392</td>\n",
       "      <td>-1.326055</td>\n",
       "      <td>-1.113261</td>\n",
       "      <td>-0.436443</td>\n",
       "      <td>0.285797</td>\n",
       "      <td>-1.296562</td>\n",
       "      <td>-1.070580</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>-1.265038</td>\n",
       "      <td>-0.852951</td>\n",
       "      <td>-0.804617</td>\n",
       "      <td>-2.093980</td>\n",
       "      <td>-0.631396</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7721</th>\n",
       "      <td>-2.186392</td>\n",
       "      <td>-1.545901</td>\n",
       "      <td>-0.888809</td>\n",
       "      <td>-0.255063</td>\n",
       "      <td>-0.453808</td>\n",
       "      <td>-1.274191</td>\n",
       "      <td>-1.094242</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-1.038171</td>\n",
       "      <td>-0.821512</td>\n",
       "      <td>-0.755830</td>\n",
       "      <td>-2.105491</td>\n",
       "      <td>-0.535483</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7722</th>\n",
       "      <td>-2.220187</td>\n",
       "      <td>-1.553053</td>\n",
       "      <td>-0.571859</td>\n",
       "      <td>0.088652</td>\n",
       "      <td>-1.590818</td>\n",
       "      <td>-1.224084</td>\n",
       "      <td>-1.153053</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.179289</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-0.269346</td>\n",
       "      <td>-0.779383</td>\n",
       "      <td>-0.720096</td>\n",
       "      <td>-2.075269</td>\n",
       "      <td>-0.791253</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7723</th>\n",
       "      <td>-3.301628</td>\n",
       "      <td>-4.108689</td>\n",
       "      <td>-4.089689</td>\n",
       "      <td>-1.940494</td>\n",
       "      <td>-2.267135</td>\n",
       "      <td>-1.411620</td>\n",
       "      <td>-1.386325</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-1.757629</td>\n",
       "      <td>-2.084278</td>\n",
       "      <td>-0.912176</td>\n",
       "      <td>-0.846131</td>\n",
       "      <td>-2.359105</td>\n",
       "      <td>-4.116266</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7724</th>\n",
       "      <td>2.646300</td>\n",
       "      <td>1.623635</td>\n",
       "      <td>3.044255</td>\n",
       "      <td>6.796943</td>\n",
       "      <td>4.498559</td>\n",
       "      <td>2.293930</td>\n",
       "      <td>2.386761</td>\n",
       "      <td>2.674771</td>\n",
       "      <td>2.671000</td>\n",
       "      <td>11.935787</td>\n",
       "      <td>13.656111</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>2.858361</td>\n",
       "      <td>1.516353</td>\n",
       "      <td>2.757559</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>7725 rows × 17 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse  LDAPS_WS  LDAPS_LH  \\\n",
       "0        -0.361459     0.383500         -0.525958 -0.127942  0.208117   \n",
       "1         0.719982     0.312077          0.079955 -0.646891 -0.313855   \n",
       "2         0.618597    -0.613599          0.162014 -0.441367 -1.248595   \n",
       "3         0.753777     1.132753          0.030141 -0.666157  0.097113   \n",
       "4         0.551007     0.249316         -0.171318 -0.627038  1.355925   \n",
       "...            ...          ...               ...       ...       ...   \n",
       "7720     -2.186392    -1.326055         -1.113261 -0.436443  0.285797   \n",
       "7721     -2.186392    -1.545901         -0.888809 -0.255063 -0.453808   \n",
       "7722     -2.220187    -1.553053         -0.571859  0.088652 -1.590818   \n",
       "7723     -3.301628    -4.108689         -4.089689 -1.940494 -2.267135   \n",
       "7724      2.646300     1.623635          3.044255  6.796943  4.498559   \n",
       "\n",
       "      LDAPS_CC1  LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4  \\\n",
       "0     -0.515389  -0.591867  -0.628602  -0.664822   -0.305593   -0.224552   \n",
       "1     -0.547719  -0.405324  -0.637654  -0.677477   -0.305593   -0.224552   \n",
       "2     -0.609644  -0.383122  -0.458249  -0.620556   -0.305593   -0.224552   \n",
       "3     -0.582719  -0.505730  -0.630769  -0.651695   -0.305593   -0.224552   \n",
       "4     -0.831594  -0.412244  -0.559505  -0.510272   -0.305593   -0.224552   \n",
       "...         ...        ...        ...        ...         ...         ...   \n",
       "7720  -1.296562  -1.070580  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "7721  -1.274191  -1.094242  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "7722  -1.224084  -1.153053  -1.278340  -1.179289   -0.305593   -0.224552   \n",
       "7723  -1.411620  -1.386325  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "7724   2.293930   2.386761   2.674771   2.671000   11.935787   13.656111   \n",
       "\n",
       "           lat       lon       DEM     Slope  Solar radiation  Next_Tmax  \n",
       "0     1.187800 -0.004668  2.768510  1.113060         1.516353  -0.375626  \n",
       "1     1.187800  0.512084 -0.315940 -0.543030         1.228419   0.071972  \n",
       "2     0.651907  0.839780 -0.526799 -0.723888         1.215006   0.263799  \n",
       "3     1.989656  0.386047 -0.298388  0.930598         1.199650   0.455627  \n",
       "4     0.117998  1.810265 -0.494934 -0.549302         1.205678   0.295771  \n",
       "...        ...       ...       ...       ...              ...        ...  \n",
       "7720 -0.149948 -1.265038 -0.852951 -0.804617        -2.093980  -0.631396  \n",
       "7721 -0.417895 -1.038171 -0.821512 -0.755830        -2.105491  -0.535483  \n",
       "7722 -0.417895 -0.269346 -0.779383 -0.720096        -2.075269  -0.791253  \n",
       "7723 -1.757629 -2.084278 -0.912176 -0.846131        -2.359105  -4.116266  \n",
       "7724  1.989656  1.810265  2.768510  2.858361         1.516353   2.757559  \n",
       "\n",
       "[7725 rows x 17 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler \n",
    "\n",
    "#标准化处理连续型特征 （10分）\n",
    "Max_ = np.array(Max)\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "sta = StandardScaler().fit(np.array(Max_[:,:17]))\n",
    "Max_1 = sta.transform(Max_[:,:17])\n",
    "Scaled_Data = pd.DataFrame(Max_1,\n",
    "                           columns=['Present_Tmax','LDAPS_RHmax','LDAPS_Tmax_lapse','LDAPS_WS','LDAPS_LH','LDAPS_CC1','LDAPS_CC2','LDAPS_CC3','LDAPS_CC4','LDAPS_PPT1','LDAPS_PPT4','lat','lon','DEM','Slope','Solar radiation','Next_Tmax'])\n",
    "Scaled_Data\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 划分特征列和标签列"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:34:50.260685Z",
     "start_time": "2020-06-16T01:34:50.234704Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.361459</td>\n",
       "      <td>0.383500</td>\n",
       "      <td>-0.525958</td>\n",
       "      <td>-0.127942</td>\n",
       "      <td>0.208117</td>\n",
       "      <td>-0.515389</td>\n",
       "      <td>-0.591867</td>\n",
       "      <td>-0.628602</td>\n",
       "      <td>-0.664822</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>1.516353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.719982</td>\n",
       "      <td>0.312077</td>\n",
       "      <td>0.079955</td>\n",
       "      <td>-0.646891</td>\n",
       "      <td>-0.313855</td>\n",
       "      <td>-0.547719</td>\n",
       "      <td>-0.405324</td>\n",
       "      <td>-0.637654</td>\n",
       "      <td>-0.677477</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>0.512084</td>\n",
       "      <td>-0.315940</td>\n",
       "      <td>-0.543030</td>\n",
       "      <td>1.228419</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.618597</td>\n",
       "      <td>-0.613599</td>\n",
       "      <td>0.162014</td>\n",
       "      <td>-0.441367</td>\n",
       "      <td>-1.248595</td>\n",
       "      <td>-0.609644</td>\n",
       "      <td>-0.383122</td>\n",
       "      <td>-0.458249</td>\n",
       "      <td>-0.620556</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>0.839780</td>\n",
       "      <td>-0.526799</td>\n",
       "      <td>-0.723888</td>\n",
       "      <td>1.215006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.753777</td>\n",
       "      <td>1.132753</td>\n",
       "      <td>0.030141</td>\n",
       "      <td>-0.666157</td>\n",
       "      <td>0.097113</td>\n",
       "      <td>-0.582719</td>\n",
       "      <td>-0.505730</td>\n",
       "      <td>-0.630769</td>\n",
       "      <td>-0.651695</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>0.386047</td>\n",
       "      <td>-0.298388</td>\n",
       "      <td>0.930598</td>\n",
       "      <td>1.199650</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.551007</td>\n",
       "      <td>0.249316</td>\n",
       "      <td>-0.171318</td>\n",
       "      <td>-0.627038</td>\n",
       "      <td>1.355925</td>\n",
       "      <td>-0.831594</td>\n",
       "      <td>-0.412244</td>\n",
       "      <td>-0.559505</td>\n",
       "      <td>-0.510272</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>-0.494934</td>\n",
       "      <td>-0.549302</td>\n",
       "      <td>1.205678</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse  LDAPS_WS  LDAPS_LH  LDAPS_CC1  \\\n",
       "0     -0.361459     0.383500         -0.525958 -0.127942  0.208117  -0.515389   \n",
       "1      0.719982     0.312077          0.079955 -0.646891 -0.313855  -0.547719   \n",
       "2      0.618597    -0.613599          0.162014 -0.441367 -1.248595  -0.609644   \n",
       "3      0.753777     1.132753          0.030141 -0.666157  0.097113  -0.582719   \n",
       "4      0.551007     0.249316         -0.171318 -0.627038  1.355925  -0.831594   \n",
       "\n",
       "   LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4       lat  \\\n",
       "0  -0.591867  -0.628602  -0.664822   -0.305593   -0.224552  1.187800   \n",
       "1  -0.405324  -0.637654  -0.677477   -0.305593   -0.224552  1.187800   \n",
       "2  -0.383122  -0.458249  -0.620556   -0.305593   -0.224552  0.651907   \n",
       "3  -0.505730  -0.630769  -0.651695   -0.305593   -0.224552  1.989656   \n",
       "4  -0.412244  -0.559505  -0.510272   -0.305593   -0.224552  0.117998   \n",
       "\n",
       "        lon       DEM     Slope  Solar radiation  \n",
       "0 -0.004668  2.768510  1.113060         1.516353  \n",
       "1  0.512084 -0.315940 -0.543030         1.228419  \n",
       "2  0.839780 -0.526799 -0.723888         1.215006  \n",
       "3  0.386047 -0.298388  0.930598         1.199650  \n",
       "4  1.810265 -0.494934 -0.549302         1.205678  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = Scaled_Data.drop(['Next_Tmax'],axis=1) \n",
    "X.head() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:35:09.014361Z",
     "start_time": "2020-06-16T01:35:09.005367Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y = Scaled_Data['Next_Tmax']\n",
    "Y.isna().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 创建线性回归模型并评估"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 划分数据集（5分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:35:15.723572Z",
     "start_time": "2020-06-16T01:35:15.714578Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>7128</th>\n",
       "      <td>1.193113</td>\n",
       "      <td>0.311093</td>\n",
       "      <td>1.129003</td>\n",
       "      <td>-0.480924</td>\n",
       "      <td>0.961917</td>\n",
       "      <td>-1.148245</td>\n",
       "      <td>-1.068539</td>\n",
       "      <td>-1.208946</td>\n",
       "      <td>-0.620317</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>-1.265038</td>\n",
       "      <td>-0.852951</td>\n",
       "      <td>-0.804617</td>\n",
       "      <td>-0.200562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7086</th>\n",
       "      <td>2.071784</td>\n",
       "      <td>-0.882019</td>\n",
       "      <td>1.472309</td>\n",
       "      <td>-0.621953</td>\n",
       "      <td>1.058620</td>\n",
       "      <td>0.116702</td>\n",
       "      <td>0.411052</td>\n",
       "      <td>-0.331920</td>\n",
       "      <td>-0.248202</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>1.389403</td>\n",
       "      <td>-0.685842</td>\n",
       "      <td>0.638121</td>\n",
       "      <td>-0.134156</td>\n",
       "      <td>-0.811691</td>\n",
       "      <td>-0.092586</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5465</th>\n",
       "      <td>0.348237</td>\n",
       "      <td>0.633636</td>\n",
       "      <td>1.346717</td>\n",
       "      <td>-0.836086</td>\n",
       "      <td>0.179723</td>\n",
       "      <td>0.190867</td>\n",
       "      <td>-0.842678</td>\n",
       "      <td>-0.232202</td>\n",
       "      <td>-0.279091</td>\n",
       "      <td>-0.259742</td>\n",
       "      <td>0.212876</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>0.839780</td>\n",
       "      <td>-0.526799</td>\n",
       "      <td>-0.723888</td>\n",
       "      <td>0.015986</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2368</th>\n",
       "      <td>1.531063</td>\n",
       "      <td>-0.939777</td>\n",
       "      <td>1.682770</td>\n",
       "      <td>1.484468</td>\n",
       "      <td>1.953763</td>\n",
       "      <td>0.277990</td>\n",
       "      <td>0.034442</td>\n",
       "      <td>0.192856</td>\n",
       "      <td>1.053894</td>\n",
       "      <td>-0.304728</td>\n",
       "      <td>0.256684</td>\n",
       "      <td>-0.685842</td>\n",
       "      <td>1.192684</td>\n",
       "      <td>-0.735531</td>\n",
       "      <td>-0.820807</td>\n",
       "      <td>0.100125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6207</th>\n",
       "      <td>0.348237</td>\n",
       "      <td>0.869425</td>\n",
       "      <td>-0.483179</td>\n",
       "      <td>-0.539199</td>\n",
       "      <td>0.238824</td>\n",
       "      <td>-0.773362</td>\n",
       "      <td>-0.140831</td>\n",
       "      <td>0.439957</td>\n",
       "      <td>2.124400</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.222748</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>-1.265038</td>\n",
       "      <td>-0.852951</td>\n",
       "      <td>-0.804617</td>\n",
       "      <td>1.186656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4895</th>\n",
       "      <td>0.888957</td>\n",
       "      <td>-0.721497</td>\n",
       "      <td>0.900135</td>\n",
       "      <td>-0.693335</td>\n",
       "      <td>-0.471907</td>\n",
       "      <td>-0.291402</td>\n",
       "      <td>-0.593887</td>\n",
       "      <td>0.870183</td>\n",
       "      <td>1.725230</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>0.002872</td>\n",
       "      <td>-1.489682</td>\n",
       "      <td>-1.025567</td>\n",
       "      <td>-0.173186</td>\n",
       "      <td>0.221824</td>\n",
       "      <td>0.999459</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4671</th>\n",
       "      <td>-0.665615</td>\n",
       "      <td>1.219947</td>\n",
       "      <td>-1.250687</td>\n",
       "      <td>0.539433</td>\n",
       "      <td>1.016048</td>\n",
       "      <td>1.045507</td>\n",
       "      <td>-0.311666</td>\n",
       "      <td>-1.098676</td>\n",
       "      <td>0.410752</td>\n",
       "      <td>-0.246427</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.953789</td>\n",
       "      <td>-2.084278</td>\n",
       "      <td>-0.202393</td>\n",
       "      <td>-0.617123</td>\n",
       "      <td>1.219789</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4486</th>\n",
       "      <td>0.382032</td>\n",
       "      <td>0.369570</td>\n",
       "      <td>-1.452174</td>\n",
       "      <td>1.909798</td>\n",
       "      <td>0.368550</td>\n",
       "      <td>0.531771</td>\n",
       "      <td>1.275151</td>\n",
       "      <td>1.855949</td>\n",
       "      <td>1.864424</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>0.551357</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-1.038171</td>\n",
       "      <td>-0.821512</td>\n",
       "      <td>-0.755830</td>\n",
       "      <td>-1.566988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5192</th>\n",
       "      <td>0.922752</td>\n",
       "      <td>-0.669964</td>\n",
       "      <td>-0.118340</td>\n",
       "      <td>-0.755271</td>\n",
       "      <td>0.769796</td>\n",
       "      <td>-0.006129</td>\n",
       "      <td>1.487284</td>\n",
       "      <td>0.851903</td>\n",
       "      <td>0.828806</td>\n",
       "      <td>-0.305329</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>-0.494934</td>\n",
       "      <td>-0.549302</td>\n",
       "      <td>0.565454</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2993</th>\n",
       "      <td>0.280647</td>\n",
       "      <td>-1.134129</td>\n",
       "      <td>-0.530138</td>\n",
       "      <td>-0.616651</td>\n",
       "      <td>0.401400</td>\n",
       "      <td>-1.010276</td>\n",
       "      <td>-0.731651</td>\n",
       "      <td>0.009885</td>\n",
       "      <td>-0.298678</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>-1.265038</td>\n",
       "      <td>-0.852951</td>\n",
       "      <td>-0.804617</td>\n",
       "      <td>-1.730564</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5407 rows × 16 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse  LDAPS_WS  LDAPS_LH  \\\n",
       "7128      1.193113     0.311093          1.129003 -0.480924  0.961917   \n",
       "7086      2.071784    -0.882019          1.472309 -0.621953  1.058620   \n",
       "5465      0.348237     0.633636          1.346717 -0.836086  0.179723   \n",
       "2368      1.531063    -0.939777          1.682770  1.484468  1.953763   \n",
       "6207      0.348237     0.869425         -0.483179 -0.539199  0.238824   \n",
       "...            ...          ...               ...       ...       ...   \n",
       "4895      0.888957    -0.721497          0.900135 -0.693335 -0.471907   \n",
       "4671     -0.665615     1.219947         -1.250687  0.539433  1.016048   \n",
       "4486      0.382032     0.369570         -1.452174  1.909798  0.368550   \n",
       "5192      0.922752    -0.669964         -0.118340 -0.755271  0.769796   \n",
       "2993      0.280647    -1.134129         -0.530138 -0.616651  0.401400   \n",
       "\n",
       "      LDAPS_CC1  LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4  \\\n",
       "7128  -1.148245  -1.068539  -1.208946  -0.620317   -0.305593   -0.224552   \n",
       "7086   0.116702   0.411052  -0.331920  -0.248202   -0.305593    1.389403   \n",
       "5465   0.190867  -0.842678  -0.232202  -0.279091   -0.259742    0.212876   \n",
       "2368   0.277990   0.034442   0.192856   1.053894   -0.304728    0.256684   \n",
       "6207  -0.773362  -0.140831   0.439957   2.124400   -0.305593   -0.222748   \n",
       "...         ...        ...        ...        ...         ...         ...   \n",
       "4895  -0.291402  -0.593887   0.870183   1.725230   -0.305593    0.002872   \n",
       "4671   1.045507  -0.311666  -1.098676   0.410752   -0.246427   -0.224552   \n",
       "4486   0.531771   1.275151   1.855949   1.864424   -0.305593    0.551357   \n",
       "5192  -0.006129   1.487284   0.851903   0.828806   -0.305329   -0.224552   \n",
       "2993  -1.010276  -0.731651   0.009885  -0.298678   -0.305593   -0.224552   \n",
       "\n",
       "           lat       lon       DEM     Slope  Solar radiation  \n",
       "7128 -0.149948 -1.265038 -0.852951 -0.804617        -0.200562  \n",
       "7086 -0.685842  0.638121 -0.134156 -0.811691        -0.092586  \n",
       "5465  0.651907  0.839780 -0.526799 -0.723888         0.015986  \n",
       "2368 -0.685842  1.192684 -0.735531 -0.820807         0.100125  \n",
       "6207 -0.149948 -1.265038 -0.852951 -0.804617         1.186656  \n",
       "...        ...       ...       ...       ...              ...  \n",
       "4895 -1.489682 -1.025567 -0.173186  0.221824         0.999459  \n",
       "4671 -0.953789 -2.084278 -0.202393 -0.617123         1.219789  \n",
       "4486 -0.417895 -1.038171 -0.821512 -0.755830        -1.566988  \n",
       "5192  0.117998  1.810265 -0.494934 -0.549302         0.565454  \n",
       "2993 -0.149948 -1.265038 -0.852951 -0.804617        -1.730564  \n",
       "\n",
       "[5407 rows x 16 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "Xtrain,Xtest,Ytrain,Ytest = train_test_split(X,Y,test_size=0.3,random_state=420)\n",
    "Xtrain"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 建模（5分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:35:18.264310Z",
     "start_time": "2020-06-16T01:35:18.247275Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "lr = LinearRegression()\n",
    "#训练数据\n",
    "lr.fit(Xtrain,Ytrain)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-15T06:32:40.607647Z",
     "start_time": "2020-06-15T06:32:40.603648Z"
    }
   },
   "source": [
    "## 评估（5分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:35:23.925342Z",
     "start_time": "2020-06-16T01:35:23.911350Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7514769438967178"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "0.7706423391018224"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error,r2_score\n",
    "#对训练集做预测\n",
    "y_pred =lr.predict(Xtrain)#得到预测结果\n",
    "y_test_pred = lr.predict(Xtest)\n",
    "r2_score(Ytrain,y_pred)\n",
    "r2_score(Ytest,y_test_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 计算MSE与RMSE（10分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:22:24.025817Z",
     "start_time": "2020-06-16T01:22:24.016823Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.23646767738543273, 0.48627942315651473)"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 评估训练集集合情况  参数1:真实标签 参数2:预测标签\n",
    "\n",
    "y_test_pred = lr.predict(Xtest)\n",
    "MSE = mean_squared_error(Ytest, y_test_pred)\n",
    "RMSE = np.sqrt(mean_squared_error(Ytest, y_test_pred))\n",
    "MSE,RMSE"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型诊断"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 绘制线性拟合图（10分）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:24.480812Z",
     "start_time": "2020-06-16T00:15:24.344885Z"
    }
   },
   "source": [
    "'''\n",
    "从上可以看到RMSE(越小越好）的值0.5，我们通过可视化来看一下训练后的预测和真实值之间的差异：\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:22:30.193284Z",
     "start_time": "2020-06-16T01:22:29.785111Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 2000x1000 with 0 Axes>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x160c6bf0ca0>]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x160c6c090d0>]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x160c6bfbf40>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 画个折线图来看看模型拟合的好坏程度\n",
    "import matplotlib\n",
    "matplotlib.use('TKAgg')\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.figure(figsize=(20,10)) \n",
    "plt.plot(range(len(Ytest)), Ytest, 'r', label='Y-TEST')\n",
    "plt.plot(range(len(Ytest)), y_test_pred, 'b', label='Y-PREDICTED')\n",
    "plt.legend() \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:25.123437Z",
     "start_time": "2020-06-16T00:15:25.118441Z"
    }
   },
   "source": [
    "'''\n",
    "可以看到许多地方，红线会明显超出蓝线，说明我们的模型拟合度不够，再换个散点图来更直观地看一下：\n",
    "'''"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:22:33.969981Z",
     "start_time": "2020-06-16T01:22:33.602723Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x160ae88daf0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#使用散点图观测（10分）\n",
    "import seaborn as sns\n",
    "data = pd.concat([pd.Series(Ytest.values),pd.Series(y_test_pred)],axis=1)\n",
    "data.columns = ['Ytest','y_test_pred']\n",
    "sns.lmplot(x='Ytest',y='y_test_pred',data=data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:25.593168Z",
     "start_time": "2020-06-16T00:15:25.588171Z"
    }
   },
   "source": [
    "'''\n",
    "图中我们可以看到，如果完全拟合，散点应该和直线相重合，这里发现，y_test有一些的异常值，\n",
    "而线性回归模型的一大缺点就是对异常值很敏感，会极大影响模型的准确性，因此，下一步，我们就根据这一点，对模型进行优化\n",
    "'''"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 绘制残差图（10分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:26.237802Z",
     "start_time": "2020-06-16T00:15:25.595167Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1200x600 with 0 Axes>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='Ytest', ylabel='y_test_pred'>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 绘制残差图查看模型的拟合情况（10分）\n",
    "from sklearn.model_selection import cross_val_predict,cross_val_score\n",
    "\n",
    "plt.figure(figsize=(12,6))\n",
    "sns.residplot(x='Ytest',y='y_test_pred',data=data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 绘制相关性热图（10分）\n",
    "\n",
    "**绘制各预测变量间的相关性热图，查看是否存在相关性很高的变量（共线性或近似共线性）**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:27.379205Z",
     "start_time": "2020-06-16T00:15:26.240804Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sns.heatmap(Max.corr(),annot=True,cmap='RdYlGn',linewidths=0.2)\n",
    "fig = plt.gcf()\n",
    "fig.set_size_inches(20,12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 模型调优"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 删除异常值（10分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T01:35:34.870734Z",
     "start_time": "2020-06-16T01:35:34.674966Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#####================寻找异常值====================######\n",
    "\n",
    "Scaled_Data['Next_Tmax'].plot.box(Ytrain)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T02:28:18.424085Z",
     "start_time": "2020-06-16T02:28:18.411090Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2.853472602978889, -2.773471985956151)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 删除掉Next_Tmax中小于下边缘值的记录（10分）\n",
    "Q1 = Scaled_Data['Next_Tmax'].quantile(q=0.25)\n",
    "Q3 = Scaled_Data['Next_Tmax'].quantile(q=0.75)\n",
    "up_whisker = Q3+1.5*(Q3-Q1)\n",
    "low_whisker = Q1-1.5*(Q3-Q1)\n",
    "up_whisker,low_whisker"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T02:16:00.616309Z",
     "start_time": "2020-06-16T02:16:00.579332Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "      <th>Next_Tmax</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2646</th>\n",
       "      <td>-2.085006</td>\n",
       "      <td>1.146582</td>\n",
       "      <td>-2.219316</td>\n",
       "      <td>-1.247521</td>\n",
       "      <td>-0.403562</td>\n",
       "      <td>1.026811</td>\n",
       "      <td>1.296359</td>\n",
       "      <td>0.673722</td>\n",
       "      <td>0.916458</td>\n",
       "      <td>-0.085883</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>-0.296649</td>\n",
       "      <td>-2.933328</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2746</th>\n",
       "      <td>-2.085006</td>\n",
       "      <td>0.722431</td>\n",
       "      <td>-2.348583</td>\n",
       "      <td>0.721884</td>\n",
       "      <td>0.433027</td>\n",
       "      <td>0.992122</td>\n",
       "      <td>1.168616</td>\n",
       "      <td>1.397337</td>\n",
       "      <td>2.294281</td>\n",
       "      <td>-0.187997</td>\n",
       "      <td>3.330418</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>-0.593807</td>\n",
       "      <td>-2.997271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5013</th>\n",
       "      <td>-1.442901</td>\n",
       "      <td>1.297023</td>\n",
       "      <td>-2.700430</td>\n",
       "      <td>3.157376</td>\n",
       "      <td>0.683962</td>\n",
       "      <td>1.258260</td>\n",
       "      <td>1.668300</td>\n",
       "      <td>1.295498</td>\n",
       "      <td>0.394573</td>\n",
       "      <td>-0.067028</td>\n",
       "      <td>0.123291</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>1.163897</td>\n",
       "      <td>-3.061213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5014</th>\n",
       "      <td>-0.564230</td>\n",
       "      <td>1.141320</td>\n",
       "      <td>-2.191208</td>\n",
       "      <td>0.266343</td>\n",
       "      <td>-0.152114</td>\n",
       "      <td>1.591983</td>\n",
       "      <td>1.615966</td>\n",
       "      <td>1.373711</td>\n",
       "      <td>0.590145</td>\n",
       "      <td>-0.085601</td>\n",
       "      <td>0.215942</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>0.512084</td>\n",
       "      <td>-0.315940</td>\n",
       "      <td>-0.543030</td>\n",
       "      <td>0.864429</td>\n",
       "      <td>-2.805443</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5038</th>\n",
       "      <td>-3.065063</td>\n",
       "      <td>1.584509</td>\n",
       "      <td>-2.477845</td>\n",
       "      <td>1.397566</td>\n",
       "      <td>-0.782010</td>\n",
       "      <td>0.502864</td>\n",
       "      <td>-0.051323</td>\n",
       "      <td>-0.042404</td>\n",
       "      <td>0.101762</td>\n",
       "      <td>0.072604</td>\n",
       "      <td>-0.138108</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>1.130439</td>\n",
       "      <td>-3.061213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6085</th>\n",
       "      <td>-1.645671</td>\n",
       "      <td>0.458114</td>\n",
       "      <td>-2.312068</td>\n",
       "      <td>1.835702</td>\n",
       "      <td>1.491039</td>\n",
       "      <td>1.193961</td>\n",
       "      <td>0.212278</td>\n",
       "      <td>0.343254</td>\n",
       "      <td>1.352686</td>\n",
       "      <td>-0.204069</td>\n",
       "      <td>0.056334</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>-1.512370</td>\n",
       "      <td>-3.029242</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6160</th>\n",
       "      <td>-2.693317</td>\n",
       "      <td>1.457365</td>\n",
       "      <td>-4.089689</td>\n",
       "      <td>4.914803</td>\n",
       "      <td>-0.209401</td>\n",
       "      <td>1.491535</td>\n",
       "      <td>2.284000</td>\n",
       "      <td>2.660253</td>\n",
       "      <td>2.270324</td>\n",
       "      <td>-0.017329</td>\n",
       "      <td>1.340515</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>-1.787101</td>\n",
       "      <td>-4.116266</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6161</th>\n",
       "      <td>-2.085006</td>\n",
       "      <td>0.517603</td>\n",
       "      <td>-3.537479</td>\n",
       "      <td>4.007012</td>\n",
       "      <td>1.465211</td>\n",
       "      <td>0.896338</td>\n",
       "      <td>1.279007</td>\n",
       "      <td>2.151481</td>\n",
       "      <td>1.601412</td>\n",
       "      <td>0.084870</td>\n",
       "      <td>2.188577</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>0.512084</td>\n",
       "      <td>-0.315940</td>\n",
       "      <td>-0.543030</td>\n",
       "      <td>-2.139516</td>\n",
       "      <td>-3.253041</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6162</th>\n",
       "      <td>-1.814646</td>\n",
       "      <td>0.293795</td>\n",
       "      <td>-3.325196</td>\n",
       "      <td>3.383264</td>\n",
       "      <td>0.733623</td>\n",
       "      <td>1.485826</td>\n",
       "      <td>1.749701</td>\n",
       "      <td>2.169470</td>\n",
       "      <td>1.582392</td>\n",
       "      <td>-0.091162</td>\n",
       "      <td>1.379135</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>0.839780</td>\n",
       "      <td>-0.526799</td>\n",
       "      <td>-0.723888</td>\n",
       "      <td>-2.151040</td>\n",
       "      <td>-3.189099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6163</th>\n",
       "      <td>-1.814646</td>\n",
       "      <td>1.380920</td>\n",
       "      <td>-3.856560</td>\n",
       "      <td>5.512491</td>\n",
       "      <td>1.054471</td>\n",
       "      <td>1.131639</td>\n",
       "      <td>2.141285</td>\n",
       "      <td>2.561570</td>\n",
       "      <td>1.944994</td>\n",
       "      <td>0.196347</td>\n",
       "      <td>1.719349</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>0.386047</td>\n",
       "      <td>-0.298388</td>\n",
       "      <td>0.930598</td>\n",
       "      <td>-2.174994</td>\n",
       "      <td>-3.093185</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6164</th>\n",
       "      <td>-1.747056</td>\n",
       "      <td>0.540895</td>\n",
       "      <td>-3.182071</td>\n",
       "      <td>2.711855</td>\n",
       "      <td>0.669195</td>\n",
       "      <td>1.429652</td>\n",
       "      <td>2.209578</td>\n",
       "      <td>2.470521</td>\n",
       "      <td>1.706632</td>\n",
       "      <td>-0.208209</td>\n",
       "      <td>1.191206</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>-0.494934</td>\n",
       "      <td>-0.549302</td>\n",
       "      <td>-2.182117</td>\n",
       "      <td>-3.189099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6165</th>\n",
       "      <td>-1.848441</td>\n",
       "      <td>0.291611</td>\n",
       "      <td>-3.010470</td>\n",
       "      <td>3.445875</td>\n",
       "      <td>0.877129</td>\n",
       "      <td>1.529458</td>\n",
       "      <td>2.188430</td>\n",
       "      <td>2.384080</td>\n",
       "      <td>1.734240</td>\n",
       "      <td>-0.111340</td>\n",
       "      <td>0.530354</td>\n",
       "      <td>-0.685842</td>\n",
       "      <td>0.638121</td>\n",
       "      <td>-0.134156</td>\n",
       "      <td>-0.811691</td>\n",
       "      <td>-2.151042</td>\n",
       "      <td>-2.901357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6166</th>\n",
       "      <td>-2.085006</td>\n",
       "      <td>0.727015</td>\n",
       "      <td>-3.418623</td>\n",
       "      <td>3.155822</td>\n",
       "      <td>1.035213</td>\n",
       "      <td>1.485919</td>\n",
       "      <td>2.195796</td>\n",
       "      <td>2.591424</td>\n",
       "      <td>2.015063</td>\n",
       "      <td>-0.123155</td>\n",
       "      <td>0.618721</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>-1.933034</td>\n",
       "      <td>-0.912176</td>\n",
       "      <td>-0.846113</td>\n",
       "      <td>-2.194098</td>\n",
       "      <td>-3.029242</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6167</th>\n",
       "      <td>-1.848441</td>\n",
       "      <td>0.128746</td>\n",
       "      <td>-2.989552</td>\n",
       "      <td>3.185203</td>\n",
       "      <td>0.541135</td>\n",
       "      <td>1.739780</td>\n",
       "      <td>2.327256</td>\n",
       "      <td>2.540478</td>\n",
       "      <td>1.387710</td>\n",
       "      <td>0.099737</td>\n",
       "      <td>0.452373</td>\n",
       "      <td>-1.489682</td>\n",
       "      <td>-1.025567</td>\n",
       "      <td>-0.173186</td>\n",
       "      <td>0.221824</td>\n",
       "      <td>-2.198221</td>\n",
       "      <td>-2.965300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6168</th>\n",
       "      <td>-1.882236</td>\n",
       "      <td>0.560205</td>\n",
       "      <td>-3.092078</td>\n",
       "      <td>3.788625</td>\n",
       "      <td>0.590168</td>\n",
       "      <td>1.796186</td>\n",
       "      <td>2.244316</td>\n",
       "      <td>2.625419</td>\n",
       "      <td>1.617721</td>\n",
       "      <td>0.058431</td>\n",
       "      <td>0.359600</td>\n",
       "      <td>-0.953789</td>\n",
       "      <td>-2.084278</td>\n",
       "      <td>-0.202393</td>\n",
       "      <td>-0.617123</td>\n",
       "      <td>-2.122537</td>\n",
       "      <td>-3.061213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6169</th>\n",
       "      <td>-2.389162</td>\n",
       "      <td>0.548754</td>\n",
       "      <td>-3.358035</td>\n",
       "      <td>3.781120</td>\n",
       "      <td>0.342167</td>\n",
       "      <td>1.724150</td>\n",
       "      <td>2.381477</td>\n",
       "      <td>2.616419</td>\n",
       "      <td>1.585261</td>\n",
       "      <td>0.143544</td>\n",
       "      <td>0.585755</td>\n",
       "      <td>-1.757629</td>\n",
       "      <td>-0.458401</td>\n",
       "      <td>2.698050</td>\n",
       "      <td>2.858339</td>\n",
       "      <td>-2.359105</td>\n",
       "      <td>-3.189099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6170</th>\n",
       "      <td>-1.747056</td>\n",
       "      <td>0.074090</td>\n",
       "      <td>-2.979031</td>\n",
       "      <td>2.996780</td>\n",
       "      <td>0.762263</td>\n",
       "      <td>1.563759</td>\n",
       "      <td>2.074531</td>\n",
       "      <td>2.188914</td>\n",
       "      <td>1.553474</td>\n",
       "      <td>-0.176992</td>\n",
       "      <td>0.826483</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>1.180080</td>\n",
       "      <td>-0.611595</td>\n",
       "      <td>-0.463394</td>\n",
       "      <td>-2.132786</td>\n",
       "      <td>-3.061213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6171</th>\n",
       "      <td>-2.355367</td>\n",
       "      <td>0.397487</td>\n",
       "      <td>-3.311613</td>\n",
       "      <td>3.644288</td>\n",
       "      <td>0.470455</td>\n",
       "      <td>1.454140</td>\n",
       "      <td>2.098564</td>\n",
       "      <td>2.500221</td>\n",
       "      <td>1.975740</td>\n",
       "      <td>-0.131878</td>\n",
       "      <td>0.559949</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>-0.042479</td>\n",
       "      <td>1.291984</td>\n",
       "      <td>-0.485418</td>\n",
       "      <td>-2.047838</td>\n",
       "      <td>-3.732610</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6172</th>\n",
       "      <td>-1.814646</td>\n",
       "      <td>0.204078</td>\n",
       "      <td>-3.348488</td>\n",
       "      <td>2.574781</td>\n",
       "      <td>0.432203</td>\n",
       "      <td>1.599614</td>\n",
       "      <td>1.915643</td>\n",
       "      <td>2.186520</td>\n",
       "      <td>1.686393</td>\n",
       "      <td>-0.163737</td>\n",
       "      <td>1.557195</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>1.154872</td>\n",
       "      <td>-0.038552</td>\n",
       "      <td>1.041227</td>\n",
       "      <td>-2.209149</td>\n",
       "      <td>-3.125156</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6173</th>\n",
       "      <td>-1.916031</td>\n",
       "      <td>0.197065</td>\n",
       "      <td>-2.929056</td>\n",
       "      <td>3.378027</td>\n",
       "      <td>0.686074</td>\n",
       "      <td>1.562744</td>\n",
       "      <td>2.234063</td>\n",
       "      <td>2.594733</td>\n",
       "      <td>1.714079</td>\n",
       "      <td>-0.069626</td>\n",
       "      <td>0.475118</td>\n",
       "      <td>-0.953789</td>\n",
       "      <td>-0.811305</td>\n",
       "      <td>-0.569849</td>\n",
       "      <td>-0.467259</td>\n",
       "      <td>-2.181937</td>\n",
       "      <td>-2.933328</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6174</th>\n",
       "      <td>-1.747056</td>\n",
       "      <td>0.335717</td>\n",
       "      <td>-3.123211</td>\n",
       "      <td>3.248928</td>\n",
       "      <td>0.446850</td>\n",
       "      <td>1.494306</td>\n",
       "      <td>2.207053</td>\n",
       "      <td>2.537313</td>\n",
       "      <td>1.997703</td>\n",
       "      <td>-0.150187</td>\n",
       "      <td>0.469188</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>-0.685268</td>\n",
       "      <td>-0.586812</td>\n",
       "      <td>-0.294277</td>\n",
       "      <td>-2.123745</td>\n",
       "      <td>-3.157127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6175</th>\n",
       "      <td>-2.051211</td>\n",
       "      <td>0.342699</td>\n",
       "      <td>-3.135019</td>\n",
       "      <td>3.611703</td>\n",
       "      <td>0.690308</td>\n",
       "      <td>1.651429</td>\n",
       "      <td>2.320333</td>\n",
       "      <td>2.606926</td>\n",
       "      <td>1.431266</td>\n",
       "      <td>-0.014336</td>\n",
       "      <td>0.546981</td>\n",
       "      <td>-1.489682</td>\n",
       "      <td>0.045747</td>\n",
       "      <td>0.374839</td>\n",
       "      <td>0.728664</td>\n",
       "      <td>-2.275436</td>\n",
       "      <td>-3.061213</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6176</th>\n",
       "      <td>-2.017416</td>\n",
       "      <td>0.443734</td>\n",
       "      <td>-3.561513</td>\n",
       "      <td>2.058058</td>\n",
       "      <td>0.188749</td>\n",
       "      <td>1.581995</td>\n",
       "      <td>2.167685</td>\n",
       "      <td>2.345558</td>\n",
       "      <td>2.006229</td>\n",
       "      <td>-0.191656</td>\n",
       "      <td>2.098913</td>\n",
       "      <td>1.455747</td>\n",
       "      <td>1.356532</td>\n",
       "      <td>-0.155640</td>\n",
       "      <td>-0.409647</td>\n",
       "      <td>-2.147388</td>\n",
       "      <td>-3.380926</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6178</th>\n",
       "      <td>-1.780851</td>\n",
       "      <td>0.683411</td>\n",
       "      <td>-3.548057</td>\n",
       "      <td>3.044549</td>\n",
       "      <td>0.353187</td>\n",
       "      <td>1.477334</td>\n",
       "      <td>2.206358</td>\n",
       "      <td>2.548709</td>\n",
       "      <td>2.066183</td>\n",
       "      <td>-0.164680</td>\n",
       "      <td>0.821632</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>-0.672664</td>\n",
       "      <td>0.242334</td>\n",
       "      <td>0.371251</td>\n",
       "      <td>-2.065497</td>\n",
       "      <td>-3.636696</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6179</th>\n",
       "      <td>-1.916031</td>\n",
       "      <td>1.543666</td>\n",
       "      <td>-4.017861</td>\n",
       "      <td>5.993714</td>\n",
       "      <td>-0.962529</td>\n",
       "      <td>1.396035</td>\n",
       "      <td>2.332449</td>\n",
       "      <td>2.674771</td>\n",
       "      <td>2.373612</td>\n",
       "      <td>0.122857</td>\n",
       "      <td>1.598622</td>\n",
       "      <td>1.455747</td>\n",
       "      <td>0.159180</td>\n",
       "      <td>1.557702</td>\n",
       "      <td>2.531191</td>\n",
       "      <td>-1.926099</td>\n",
       "      <td>-3.444869</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6180</th>\n",
       "      <td>-1.983621</td>\n",
       "      <td>0.182030</td>\n",
       "      <td>-3.034679</td>\n",
       "      <td>3.597233</td>\n",
       "      <td>0.730895</td>\n",
       "      <td>1.496750</td>\n",
       "      <td>1.973156</td>\n",
       "      <td>2.333667</td>\n",
       "      <td>1.678084</td>\n",
       "      <td>-0.125619</td>\n",
       "      <td>0.725153</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>0.612913</td>\n",
       "      <td>-0.655808</td>\n",
       "      <td>-0.500732</td>\n",
       "      <td>-2.157485</td>\n",
       "      <td>-2.965300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6181</th>\n",
       "      <td>-1.814646</td>\n",
       "      <td>0.273611</td>\n",
       "      <td>-2.953121</td>\n",
       "      <td>3.107225</td>\n",
       "      <td>0.982764</td>\n",
       "      <td>1.604394</td>\n",
       "      <td>2.127915</td>\n",
       "      <td>2.420592</td>\n",
       "      <td>1.458402</td>\n",
       "      <td>-0.151790</td>\n",
       "      <td>0.611307</td>\n",
       "      <td>-0.685842</td>\n",
       "      <td>1.192684</td>\n",
       "      <td>-0.735531</td>\n",
       "      <td>-0.820807</td>\n",
       "      <td>-2.190923</td>\n",
       "      <td>-2.837415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6182</th>\n",
       "      <td>-1.679466</td>\n",
       "      <td>0.354111</td>\n",
       "      <td>-3.005157</td>\n",
       "      <td>3.410355</td>\n",
       "      <td>0.676825</td>\n",
       "      <td>1.536100</td>\n",
       "      <td>2.314564</td>\n",
       "      <td>2.606067</td>\n",
       "      <td>2.026355</td>\n",
       "      <td>-0.091962</td>\n",
       "      <td>0.400833</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>-1.265038</td>\n",
       "      <td>-0.852951</td>\n",
       "      <td>-0.804617</td>\n",
       "      <td>-2.187271</td>\n",
       "      <td>-2.901357</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6183</th>\n",
       "      <td>-1.679466</td>\n",
       "      <td>0.220667</td>\n",
       "      <td>-2.930760</td>\n",
       "      <td>3.413660</td>\n",
       "      <td>0.696246</td>\n",
       "      <td>1.499949</td>\n",
       "      <td>2.304512</td>\n",
       "      <td>2.559863</td>\n",
       "      <td>1.918219</td>\n",
       "      <td>-0.096962</td>\n",
       "      <td>0.454762</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-1.038171</td>\n",
       "      <td>-0.821512</td>\n",
       "      <td>-0.755830</td>\n",
       "      <td>-2.198942</td>\n",
       "      <td>-2.933328</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6184</th>\n",
       "      <td>-1.882236</td>\n",
       "      <td>0.226188</td>\n",
       "      <td>-2.939399</td>\n",
       "      <td>3.389754</td>\n",
       "      <td>0.636524</td>\n",
       "      <td>1.501820</td>\n",
       "      <td>2.105095</td>\n",
       "      <td>2.520487</td>\n",
       "      <td>1.840231</td>\n",
       "      <td>-0.120542</td>\n",
       "      <td>0.501102</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-0.269346</td>\n",
       "      <td>-0.779383</td>\n",
       "      <td>-0.720096</td>\n",
       "      <td>-2.168392</td>\n",
       "      <td>-2.933328</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7649</th>\n",
       "      <td>-2.220187</td>\n",
       "      <td>0.061907</td>\n",
       "      <td>-2.852085</td>\n",
       "      <td>3.168364</td>\n",
       "      <td>2.038956</td>\n",
       "      <td>0.015416</td>\n",
       "      <td>-1.059234</td>\n",
       "      <td>-1.063412</td>\n",
       "      <td>-0.784782</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>-1.512370</td>\n",
       "      <td>-3.029242</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7673</th>\n",
       "      <td>-3.200243</td>\n",
       "      <td>-0.068696</td>\n",
       "      <td>-3.183106</td>\n",
       "      <td>-0.296576</td>\n",
       "      <td>0.186007</td>\n",
       "      <td>0.948593</td>\n",
       "      <td>1.141637</td>\n",
       "      <td>0.573134</td>\n",
       "      <td>-0.818077</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>-1.602907</td>\n",
       "      <td>-3.157127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7723</th>\n",
       "      <td>-3.301628</td>\n",
       "      <td>-4.108689</td>\n",
       "      <td>-4.089689</td>\n",
       "      <td>-1.940494</td>\n",
       "      <td>-2.267135</td>\n",
       "      <td>-1.411620</td>\n",
       "      <td>-1.386325</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-1.757629</td>\n",
       "      <td>-2.084278</td>\n",
       "      <td>-0.912176</td>\n",
       "      <td>-0.846131</td>\n",
       "      <td>-2.359105</td>\n",
       "      <td>-4.116266</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse  LDAPS_WS  LDAPS_LH  \\\n",
       "2646     -2.085006     1.146582         -2.219316 -1.247521 -0.403562   \n",
       "2746     -2.085006     0.722431         -2.348583  0.721884  0.433027   \n",
       "5013     -1.442901     1.297023         -2.700430  3.157376  0.683962   \n",
       "5014     -0.564230     1.141320         -2.191208  0.266343 -0.152114   \n",
       "5038     -3.065063     1.584509         -2.477845  1.397566 -0.782010   \n",
       "6085     -1.645671     0.458114         -2.312068  1.835702  1.491039   \n",
       "6160     -2.693317     1.457365         -4.089689  4.914803 -0.209401   \n",
       "6161     -2.085006     0.517603         -3.537479  4.007012  1.465211   \n",
       "6162     -1.814646     0.293795         -3.325196  3.383264  0.733623   \n",
       "6163     -1.814646     1.380920         -3.856560  5.512491  1.054471   \n",
       "6164     -1.747056     0.540895         -3.182071  2.711855  0.669195   \n",
       "6165     -1.848441     0.291611         -3.010470  3.445875  0.877129   \n",
       "6166     -2.085006     0.727015         -3.418623  3.155822  1.035213   \n",
       "6167     -1.848441     0.128746         -2.989552  3.185203  0.541135   \n",
       "6168     -1.882236     0.560205         -3.092078  3.788625  0.590168   \n",
       "6169     -2.389162     0.548754         -3.358035  3.781120  0.342167   \n",
       "6170     -1.747056     0.074090         -2.979031  2.996780  0.762263   \n",
       "6171     -2.355367     0.397487         -3.311613  3.644288  0.470455   \n",
       "6172     -1.814646     0.204078         -3.348488  2.574781  0.432203   \n",
       "6173     -1.916031     0.197065         -2.929056  3.378027  0.686074   \n",
       "6174     -1.747056     0.335717         -3.123211  3.248928  0.446850   \n",
       "6175     -2.051211     0.342699         -3.135019  3.611703  0.690308   \n",
       "6176     -2.017416     0.443734         -3.561513  2.058058  0.188749   \n",
       "6178     -1.780851     0.683411         -3.548057  3.044549  0.353187   \n",
       "6179     -1.916031     1.543666         -4.017861  5.993714 -0.962529   \n",
       "6180     -1.983621     0.182030         -3.034679  3.597233  0.730895   \n",
       "6181     -1.814646     0.273611         -2.953121  3.107225  0.982764   \n",
       "6182     -1.679466     0.354111         -3.005157  3.410355  0.676825   \n",
       "6183     -1.679466     0.220667         -2.930760  3.413660  0.696246   \n",
       "6184     -1.882236     0.226188         -2.939399  3.389754  0.636524   \n",
       "7649     -2.220187     0.061907         -2.852085  3.168364  2.038956   \n",
       "7673     -3.200243    -0.068696         -3.183106 -0.296576  0.186007   \n",
       "7723     -3.301628    -4.108689         -4.089689 -1.940494 -2.267135   \n",
       "\n",
       "      LDAPS_CC1  LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4  \\\n",
       "2646   1.026811   1.296359   0.673722   0.916458   -0.085883   -0.224552   \n",
       "2746   0.992122   1.168616   1.397337   2.294281   -0.187997    3.330418   \n",
       "5013   1.258260   1.668300   1.295498   0.394573   -0.067028    0.123291   \n",
       "5014   1.591983   1.615966   1.373711   0.590145   -0.085601    0.215942   \n",
       "5038   0.502864  -0.051323  -0.042404   0.101762    0.072604   -0.138108   \n",
       "6085   1.193961   0.212278   0.343254   1.352686   -0.204069    0.056334   \n",
       "6160   1.491535   2.284000   2.660253   2.270324   -0.017329    1.340515   \n",
       "6161   0.896338   1.279007   2.151481   1.601412    0.084870    2.188577   \n",
       "6162   1.485826   1.749701   2.169470   1.582392   -0.091162    1.379135   \n",
       "6163   1.131639   2.141285   2.561570   1.944994    0.196347    1.719349   \n",
       "6164   1.429652   2.209578   2.470521   1.706632   -0.208209    1.191206   \n",
       "6165   1.529458   2.188430   2.384080   1.734240   -0.111340    0.530354   \n",
       "6166   1.485919   2.195796   2.591424   2.015063   -0.123155    0.618721   \n",
       "6167   1.739780   2.327256   2.540478   1.387710    0.099737    0.452373   \n",
       "6168   1.796186   2.244316   2.625419   1.617721    0.058431    0.359600   \n",
       "6169   1.724150   2.381477   2.616419   1.585261    0.143544    0.585755   \n",
       "6170   1.563759   2.074531   2.188914   1.553474   -0.176992    0.826483   \n",
       "6171   1.454140   2.098564   2.500221   1.975740   -0.131878    0.559949   \n",
       "6172   1.599614   1.915643   2.186520   1.686393   -0.163737    1.557195   \n",
       "6173   1.562744   2.234063   2.594733   1.714079   -0.069626    0.475118   \n",
       "6174   1.494306   2.207053   2.537313   1.997703   -0.150187    0.469188   \n",
       "6175   1.651429   2.320333   2.606926   1.431266   -0.014336    0.546981   \n",
       "6176   1.581995   2.167685   2.345558   2.006229   -0.191656    2.098913   \n",
       "6178   1.477334   2.206358   2.548709   2.066183   -0.164680    0.821632   \n",
       "6179   1.396035   2.332449   2.674771   2.373612    0.122857    1.598622   \n",
       "6180   1.496750   1.973156   2.333667   1.678084   -0.125619    0.725153   \n",
       "6181   1.604394   2.127915   2.420592   1.458402   -0.151790    0.611307   \n",
       "6182   1.536100   2.314564   2.606067   2.026355   -0.091962    0.400833   \n",
       "6183   1.499949   2.304512   2.559863   1.918219   -0.096962    0.454762   \n",
       "6184   1.501820   2.105095   2.520487   1.840231   -0.120542    0.501102   \n",
       "7649   0.015416  -1.059234  -1.063412  -0.784782   -0.305593   -0.224552   \n",
       "7673   0.948593   1.141637   0.573134  -0.818077   -0.305593   -0.224552   \n",
       "7723  -1.411620  -1.386325  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "\n",
       "           lat       lon       DEM     Slope  Solar radiation  Next_Tmax  \n",
       "2646  1.187800 -0.004668  2.768510  1.113060        -0.296649  -2.933328  \n",
       "2746  1.187800 -0.004668  2.768510  1.113060        -0.593807  -2.997271  \n",
       "5013  1.187800 -0.004668  2.768510  1.113060         1.163897  -3.061213  \n",
       "5014  1.187800  0.512084 -0.315940 -0.543030         0.864429  -2.805443  \n",
       "5038  1.187800 -0.004668  2.768510  1.113060         1.130439  -3.061213  \n",
       "6085  1.187800 -0.004668  2.768510  1.113060        -1.512370  -3.029242  \n",
       "6160  1.187800 -0.004668  2.768510  1.113060        -1.787101  -4.116266  \n",
       "6161  1.187800  0.512084 -0.315940 -0.543030        -2.139516  -3.253041  \n",
       "6162  0.651907  0.839780 -0.526799 -0.723888        -2.151040  -3.189099  \n",
       "6163  1.989656  0.386047 -0.298388  0.930598        -2.174994  -3.093185  \n",
       "6164  0.117998  1.810265 -0.494934 -0.549302        -2.182117  -3.189099  \n",
       "6165 -0.685842  0.638121 -0.134156 -0.811691        -2.151042  -2.901357  \n",
       "6166  0.651907 -1.933034 -0.912176 -0.846113        -2.194098  -3.029242  \n",
       "6167 -1.489682 -1.025567 -0.173186  0.221824        -2.198221  -2.965300  \n",
       "6168 -0.953789 -2.084278 -0.202393 -0.617123        -2.122537  -3.061213  \n",
       "6169 -1.757629 -0.458401  2.698050  2.858339        -2.359105  -3.189099  \n",
       "6170 -0.149948  1.180080 -0.611595 -0.463394        -2.132786  -3.061213  \n",
       "6171  0.117998 -0.042479  1.291984 -0.485418        -2.047838  -3.732610  \n",
       "6172  0.651907  1.154872 -0.038552  1.041227        -2.209149  -3.125156  \n",
       "6173 -0.953789 -0.811305 -0.569849 -0.467259        -2.181937  -2.933328  \n",
       "6174  0.117998 -0.685268 -0.586812 -0.294277        -2.123745  -3.157127  \n",
       "6175 -1.489682  0.045747  0.374839  0.728664        -2.275436  -3.061213  \n",
       "6176  1.455747  1.356532 -0.155640 -0.409647        -2.147388  -3.380926  \n",
       "6178  0.651907 -0.672664  0.242334  0.371251        -2.065497  -3.636696  \n",
       "6179  1.455747  0.159180  1.557702  2.531191        -1.926099  -3.444869  \n",
       "6180  0.117998  0.612913 -0.655808 -0.500732        -2.157485  -2.965300  \n",
       "6181 -0.685842  1.192684 -0.735531 -0.820807        -2.190923  -2.837415  \n",
       "6182 -0.149948 -1.265038 -0.852951 -0.804617        -2.187271  -2.901357  \n",
       "6183 -0.417895 -1.038171 -0.821512 -0.755830        -2.198942  -2.933328  \n",
       "6184 -0.417895 -0.269346 -0.779383 -0.720096        -2.168392  -2.933328  \n",
       "7649  1.187800 -0.004668  2.768510  1.113060        -1.512370  -3.029242  \n",
       "7673  1.187800 -0.004668  2.768510  1.113060        -1.602907  -3.157127  \n",
       "7723 -1.757629 -2.084278 -0.912176 -0.846131        -2.359105  -4.116266  "
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Y中小于箱型图下边缘的值\n",
    "Scaled_Data[Scaled_Data['Next_Tmax']<low_whisker] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T02:24:40.455480Z",
     "start_time": "2020-06-16T02:24:40.448484Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2646, 2746, 5013, 5014, 5038, 6085, 6160, 6161, 6162, 6163, 6164,\n",
       "       6165, 6166, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175,\n",
       "       6176, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 7649, 7673, 7723],\n",
       "      dtype=int64)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 要删除的样本的Index\n",
    "drop_index=Scaled_Data[Scaled_Data['Next_Tmax']<low_whisker].index.values\n",
    "drop_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T02:25:42.036217Z",
     "start_time": "2020-06-16T02:25:41.961262Z"
    }
   },
   "outputs": [],
   "source": [
    "# 删除Y中小于箱型图下边缘的值\n",
    "X=X.drop(drop_index)\n",
    "Y=Y.drop(drop_index) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T02:25:54.069979Z",
     "start_time": "2020-06-16T02:25:54.035982Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.361459</td>\n",
       "      <td>0.383500</td>\n",
       "      <td>-0.525958</td>\n",
       "      <td>-0.127942</td>\n",
       "      <td>0.208117</td>\n",
       "      <td>-0.515389</td>\n",
       "      <td>-0.591867</td>\n",
       "      <td>-0.628602</td>\n",
       "      <td>-0.664822</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>1.516353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.719982</td>\n",
       "      <td>0.312077</td>\n",
       "      <td>0.079955</td>\n",
       "      <td>-0.646891</td>\n",
       "      <td>-0.313855</td>\n",
       "      <td>-0.547719</td>\n",
       "      <td>-0.405324</td>\n",
       "      <td>-0.637654</td>\n",
       "      <td>-0.677477</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>0.512084</td>\n",
       "      <td>-0.315940</td>\n",
       "      <td>-0.543030</td>\n",
       "      <td>1.228419</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.618597</td>\n",
       "      <td>-0.613599</td>\n",
       "      <td>0.162014</td>\n",
       "      <td>-0.441367</td>\n",
       "      <td>-1.248595</td>\n",
       "      <td>-0.609644</td>\n",
       "      <td>-0.383122</td>\n",
       "      <td>-0.458249</td>\n",
       "      <td>-0.620556</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>0.839780</td>\n",
       "      <td>-0.526799</td>\n",
       "      <td>-0.723888</td>\n",
       "      <td>1.215006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.753777</td>\n",
       "      <td>1.132753</td>\n",
       "      <td>0.030141</td>\n",
       "      <td>-0.666157</td>\n",
       "      <td>0.097113</td>\n",
       "      <td>-0.582719</td>\n",
       "      <td>-0.505730</td>\n",
       "      <td>-0.630769</td>\n",
       "      <td>-0.651695</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>0.386047</td>\n",
       "      <td>-0.298388</td>\n",
       "      <td>0.930598</td>\n",
       "      <td>1.199650</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.551007</td>\n",
       "      <td>0.249316</td>\n",
       "      <td>-0.171318</td>\n",
       "      <td>-0.627038</td>\n",
       "      <td>1.355925</td>\n",
       "      <td>-0.831594</td>\n",
       "      <td>-0.412244</td>\n",
       "      <td>-0.559505</td>\n",
       "      <td>-0.510272</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>-0.494934</td>\n",
       "      <td>-0.549302</td>\n",
       "      <td>1.205678</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7719</th>\n",
       "      <td>-2.456752</td>\n",
       "      <td>-0.653184</td>\n",
       "      <td>-0.992929</td>\n",
       "      <td>-0.611806</td>\n",
       "      <td>0.586458</td>\n",
       "      <td>-1.157014</td>\n",
       "      <td>-1.290791</td>\n",
       "      <td>-1.278338</td>\n",
       "      <td>-1.112549</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.685842</td>\n",
       "      <td>1.192684</td>\n",
       "      <td>-0.735531</td>\n",
       "      <td>-0.820807</td>\n",
       "      <td>-2.097499</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7720</th>\n",
       "      <td>-2.186392</td>\n",
       "      <td>-1.326055</td>\n",
       "      <td>-1.113261</td>\n",
       "      <td>-0.436443</td>\n",
       "      <td>0.285797</td>\n",
       "      <td>-1.296562</td>\n",
       "      <td>-1.070580</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>-1.265038</td>\n",
       "      <td>-0.852951</td>\n",
       "      <td>-0.804617</td>\n",
       "      <td>-2.093980</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7721</th>\n",
       "      <td>-2.186392</td>\n",
       "      <td>-1.545901</td>\n",
       "      <td>-0.888809</td>\n",
       "      <td>-0.255063</td>\n",
       "      <td>-0.453808</td>\n",
       "      <td>-1.274191</td>\n",
       "      <td>-1.094242</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-1.038171</td>\n",
       "      <td>-0.821512</td>\n",
       "      <td>-0.755830</td>\n",
       "      <td>-2.105491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7722</th>\n",
       "      <td>-2.220187</td>\n",
       "      <td>-1.553053</td>\n",
       "      <td>-0.571859</td>\n",
       "      <td>0.088652</td>\n",
       "      <td>-1.590818</td>\n",
       "      <td>-1.224084</td>\n",
       "      <td>-1.153053</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.179289</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-0.269346</td>\n",
       "      <td>-0.779383</td>\n",
       "      <td>-0.720096</td>\n",
       "      <td>-2.075269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7724</th>\n",
       "      <td>2.646300</td>\n",
       "      <td>1.623635</td>\n",
       "      <td>3.044255</td>\n",
       "      <td>6.796943</td>\n",
       "      <td>4.498559</td>\n",
       "      <td>2.293930</td>\n",
       "      <td>2.386761</td>\n",
       "      <td>2.674771</td>\n",
       "      <td>2.671000</td>\n",
       "      <td>11.935787</td>\n",
       "      <td>13.656111</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>2.858361</td>\n",
       "      <td>1.516353</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>7692 rows × 16 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse  LDAPS_WS  LDAPS_LH  \\\n",
       "0        -0.361459     0.383500         -0.525958 -0.127942  0.208117   \n",
       "1         0.719982     0.312077          0.079955 -0.646891 -0.313855   \n",
       "2         0.618597    -0.613599          0.162014 -0.441367 -1.248595   \n",
       "3         0.753777     1.132753          0.030141 -0.666157  0.097113   \n",
       "4         0.551007     0.249316         -0.171318 -0.627038  1.355925   \n",
       "...            ...          ...               ...       ...       ...   \n",
       "7719     -2.456752    -0.653184         -0.992929 -0.611806  0.586458   \n",
       "7720     -2.186392    -1.326055         -1.113261 -0.436443  0.285797   \n",
       "7721     -2.186392    -1.545901         -0.888809 -0.255063 -0.453808   \n",
       "7722     -2.220187    -1.553053         -0.571859  0.088652 -1.590818   \n",
       "7724      2.646300     1.623635          3.044255  6.796943  4.498559   \n",
       "\n",
       "      LDAPS_CC1  LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4  \\\n",
       "0     -0.515389  -0.591867  -0.628602  -0.664822   -0.305593   -0.224552   \n",
       "1     -0.547719  -0.405324  -0.637654  -0.677477   -0.305593   -0.224552   \n",
       "2     -0.609644  -0.383122  -0.458249  -0.620556   -0.305593   -0.224552   \n",
       "3     -0.582719  -0.505730  -0.630769  -0.651695   -0.305593   -0.224552   \n",
       "4     -0.831594  -0.412244  -0.559505  -0.510272   -0.305593   -0.224552   \n",
       "...         ...        ...        ...        ...         ...         ...   \n",
       "7719  -1.157014  -1.290791  -1.278338  -1.112549   -0.305593   -0.224552   \n",
       "7720  -1.296562  -1.070580  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "7721  -1.274191  -1.094242  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "7722  -1.224084  -1.153053  -1.278340  -1.179289   -0.305593   -0.224552   \n",
       "7724   2.293930   2.386761   2.674771   2.671000   11.935787   13.656111   \n",
       "\n",
       "           lat       lon       DEM     Slope  Solar radiation  \n",
       "0     1.187800 -0.004668  2.768510  1.113060         1.516353  \n",
       "1     1.187800  0.512084 -0.315940 -0.543030         1.228419  \n",
       "2     0.651907  0.839780 -0.526799 -0.723888         1.215006  \n",
       "3     1.989656  0.386047 -0.298388  0.930598         1.199650  \n",
       "4     0.117998  1.810265 -0.494934 -0.549302         1.205678  \n",
       "...        ...       ...       ...       ...              ...  \n",
       "7719 -0.685842  1.192684 -0.735531 -0.820807        -2.097499  \n",
       "7720 -0.149948 -1.265038 -0.852951 -0.804617        -2.093980  \n",
       "7721 -0.417895 -1.038171 -0.821512 -0.755830        -2.105491  \n",
       "7722 -0.417895 -0.269346 -0.779383 -0.720096        -2.075269  \n",
       "7724  1.989656  1.810265  2.768510  2.858361         1.516353  \n",
       "\n",
       "[7692 rows x 16 columns]"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "0      -0.375626\n",
       "1       0.071972\n",
       "2       0.263799\n",
       "3       0.455627\n",
       "4       0.295771\n",
       "          ...   \n",
       "7719   -0.727310\n",
       "7720   -0.631396\n",
       "7721   -0.535483\n",
       "7722   -0.791253\n",
       "7724    2.757559\n",
       "Name: Next_Tmax, Length: 7692, dtype: float64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 删除后的X,Y -------少了两行\n",
    "X\n",
    "Y "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:21:08.371115Z",
     "start_time": "2020-06-16T03:21:08.337137Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression()"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 0.228409642533467\n",
      "RMSE: 0.4779222138941305\n"
     ]
    }
   ],
   "source": [
    "# 重新划分数据集\n",
    "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=1)\n",
    "# 对训练集进行训练\n",
    "lr = LinearRegression()\n",
    "lr.fit(X_train, Y_train) \n",
    "# 对测试集进行预测\n",
    "Y_pred = lr.predict(X_test)\n",
    "MSE = mean_squared_error(Y_test, Y_pred)\n",
    "RMSE = np.sqrt(mean_squared_error(Y_test, Y_pred)) \n",
    "print('MSE:',MSE) \n",
    "print('RMSE:',RMSE)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:27.726012Z",
     "start_time": "2020-06-16T00:15:27.652048Z"
    }
   },
   "outputs": [],
   "source": [
    "# 上一次评估结果\n",
    "# MSE: 0.25266554606897074\n",
    "# RMSE: 0.502658478560713  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:15:27.917423Z",
     "start_time": "2020-06-16T00:15:27.728011Z"
    }
   },
   "source": [
    "'''\n",
    "可以看到，该模型的RMSE由原来的0.5降低到了0.48，小幅度的提升了模型的准确率;去除异常值，提高准确度。\n",
    "'''"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 特征筛选"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:27.527723Z",
     "start_time": "2020-06-16T03:22:27.496745Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Present_Tmax</th>\n",
       "      <th>LDAPS_RHmax</th>\n",
       "      <th>LDAPS_Tmax_lapse</th>\n",
       "      <th>LDAPS_WS</th>\n",
       "      <th>LDAPS_LH</th>\n",
       "      <th>LDAPS_CC1</th>\n",
       "      <th>LDAPS_CC2</th>\n",
       "      <th>LDAPS_CC3</th>\n",
       "      <th>LDAPS_CC4</th>\n",
       "      <th>LDAPS_PPT1</th>\n",
       "      <th>LDAPS_PPT4</th>\n",
       "      <th>lat</th>\n",
       "      <th>lon</th>\n",
       "      <th>DEM</th>\n",
       "      <th>Slope</th>\n",
       "      <th>Solar radiation</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.361459</td>\n",
       "      <td>0.383500</td>\n",
       "      <td>-0.525958</td>\n",
       "      <td>-0.127942</td>\n",
       "      <td>0.208117</td>\n",
       "      <td>-0.515389</td>\n",
       "      <td>-0.591867</td>\n",
       "      <td>-0.628602</td>\n",
       "      <td>-0.664822</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>-0.004668</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>1.113060</td>\n",
       "      <td>1.516353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.719982</td>\n",
       "      <td>0.312077</td>\n",
       "      <td>0.079955</td>\n",
       "      <td>-0.646891</td>\n",
       "      <td>-0.313855</td>\n",
       "      <td>-0.547719</td>\n",
       "      <td>-0.405324</td>\n",
       "      <td>-0.637654</td>\n",
       "      <td>-0.677477</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.187800</td>\n",
       "      <td>0.512084</td>\n",
       "      <td>-0.315940</td>\n",
       "      <td>-0.543030</td>\n",
       "      <td>1.228419</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.618597</td>\n",
       "      <td>-0.613599</td>\n",
       "      <td>0.162014</td>\n",
       "      <td>-0.441367</td>\n",
       "      <td>-1.248595</td>\n",
       "      <td>-0.609644</td>\n",
       "      <td>-0.383122</td>\n",
       "      <td>-0.458249</td>\n",
       "      <td>-0.620556</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.651907</td>\n",
       "      <td>0.839780</td>\n",
       "      <td>-0.526799</td>\n",
       "      <td>-0.723888</td>\n",
       "      <td>1.215006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.753777</td>\n",
       "      <td>1.132753</td>\n",
       "      <td>0.030141</td>\n",
       "      <td>-0.666157</td>\n",
       "      <td>0.097113</td>\n",
       "      <td>-0.582719</td>\n",
       "      <td>-0.505730</td>\n",
       "      <td>-0.630769</td>\n",
       "      <td>-0.651695</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>0.386047</td>\n",
       "      <td>-0.298388</td>\n",
       "      <td>0.930598</td>\n",
       "      <td>1.199650</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.551007</td>\n",
       "      <td>0.249316</td>\n",
       "      <td>-0.171318</td>\n",
       "      <td>-0.627038</td>\n",
       "      <td>1.355925</td>\n",
       "      <td>-0.831594</td>\n",
       "      <td>-0.412244</td>\n",
       "      <td>-0.559505</td>\n",
       "      <td>-0.510272</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>0.117998</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>-0.494934</td>\n",
       "      <td>-0.549302</td>\n",
       "      <td>1.205678</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7719</th>\n",
       "      <td>-2.456752</td>\n",
       "      <td>-0.653184</td>\n",
       "      <td>-0.992929</td>\n",
       "      <td>-0.611806</td>\n",
       "      <td>0.586458</td>\n",
       "      <td>-1.157014</td>\n",
       "      <td>-1.290791</td>\n",
       "      <td>-1.278338</td>\n",
       "      <td>-1.112549</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.685842</td>\n",
       "      <td>1.192684</td>\n",
       "      <td>-0.735531</td>\n",
       "      <td>-0.820807</td>\n",
       "      <td>-2.097499</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7720</th>\n",
       "      <td>-2.186392</td>\n",
       "      <td>-1.326055</td>\n",
       "      <td>-1.113261</td>\n",
       "      <td>-0.436443</td>\n",
       "      <td>0.285797</td>\n",
       "      <td>-1.296562</td>\n",
       "      <td>-1.070580</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.149948</td>\n",
       "      <td>-1.265038</td>\n",
       "      <td>-0.852951</td>\n",
       "      <td>-0.804617</td>\n",
       "      <td>-2.093980</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7721</th>\n",
       "      <td>-2.186392</td>\n",
       "      <td>-1.545901</td>\n",
       "      <td>-0.888809</td>\n",
       "      <td>-0.255063</td>\n",
       "      <td>-0.453808</td>\n",
       "      <td>-1.274191</td>\n",
       "      <td>-1.094242</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.182437</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-1.038171</td>\n",
       "      <td>-0.821512</td>\n",
       "      <td>-0.755830</td>\n",
       "      <td>-2.105491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7722</th>\n",
       "      <td>-2.220187</td>\n",
       "      <td>-1.553053</td>\n",
       "      <td>-0.571859</td>\n",
       "      <td>0.088652</td>\n",
       "      <td>-1.590818</td>\n",
       "      <td>-1.224084</td>\n",
       "      <td>-1.153053</td>\n",
       "      <td>-1.278340</td>\n",
       "      <td>-1.179289</td>\n",
       "      <td>-0.305593</td>\n",
       "      <td>-0.224552</td>\n",
       "      <td>-0.417895</td>\n",
       "      <td>-0.269346</td>\n",
       "      <td>-0.779383</td>\n",
       "      <td>-0.720096</td>\n",
       "      <td>-2.075269</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7724</th>\n",
       "      <td>2.646300</td>\n",
       "      <td>1.623635</td>\n",
       "      <td>3.044255</td>\n",
       "      <td>6.796943</td>\n",
       "      <td>4.498559</td>\n",
       "      <td>2.293930</td>\n",
       "      <td>2.386761</td>\n",
       "      <td>2.674771</td>\n",
       "      <td>2.671000</td>\n",
       "      <td>11.935787</td>\n",
       "      <td>13.656111</td>\n",
       "      <td>1.989656</td>\n",
       "      <td>1.810265</td>\n",
       "      <td>2.768510</td>\n",
       "      <td>2.858361</td>\n",
       "      <td>1.516353</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>7692 rows × 16 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Present_Tmax  LDAPS_RHmax  LDAPS_Tmax_lapse  LDAPS_WS  LDAPS_LH  \\\n",
       "0        -0.361459     0.383500         -0.525958 -0.127942  0.208117   \n",
       "1         0.719982     0.312077          0.079955 -0.646891 -0.313855   \n",
       "2         0.618597    -0.613599          0.162014 -0.441367 -1.248595   \n",
       "3         0.753777     1.132753          0.030141 -0.666157  0.097113   \n",
       "4         0.551007     0.249316         -0.171318 -0.627038  1.355925   \n",
       "...            ...          ...               ...       ...       ...   \n",
       "7719     -2.456752    -0.653184         -0.992929 -0.611806  0.586458   \n",
       "7720     -2.186392    -1.326055         -1.113261 -0.436443  0.285797   \n",
       "7721     -2.186392    -1.545901         -0.888809 -0.255063 -0.453808   \n",
       "7722     -2.220187    -1.553053         -0.571859  0.088652 -1.590818   \n",
       "7724      2.646300     1.623635          3.044255  6.796943  4.498559   \n",
       "\n",
       "      LDAPS_CC1  LDAPS_CC2  LDAPS_CC3  LDAPS_CC4  LDAPS_PPT1  LDAPS_PPT4  \\\n",
       "0     -0.515389  -0.591867  -0.628602  -0.664822   -0.305593   -0.224552   \n",
       "1     -0.547719  -0.405324  -0.637654  -0.677477   -0.305593   -0.224552   \n",
       "2     -0.609644  -0.383122  -0.458249  -0.620556   -0.305593   -0.224552   \n",
       "3     -0.582719  -0.505730  -0.630769  -0.651695   -0.305593   -0.224552   \n",
       "4     -0.831594  -0.412244  -0.559505  -0.510272   -0.305593   -0.224552   \n",
       "...         ...        ...        ...        ...         ...         ...   \n",
       "7719  -1.157014  -1.290791  -1.278338  -1.112549   -0.305593   -0.224552   \n",
       "7720  -1.296562  -1.070580  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "7721  -1.274191  -1.094242  -1.278340  -1.182437   -0.305593   -0.224552   \n",
       "7722  -1.224084  -1.153053  -1.278340  -1.179289   -0.305593   -0.224552   \n",
       "7724   2.293930   2.386761   2.674771   2.671000   11.935787   13.656111   \n",
       "\n",
       "           lat       lon       DEM     Slope  Solar radiation  \n",
       "0     1.187800 -0.004668  2.768510  1.113060         1.516353  \n",
       "1     1.187800  0.512084 -0.315940 -0.543030         1.228419  \n",
       "2     0.651907  0.839780 -0.526799 -0.723888         1.215006  \n",
       "3     1.989656  0.386047 -0.298388  0.930598         1.199650  \n",
       "4     0.117998  1.810265 -0.494934 -0.549302         1.205678  \n",
       "...        ...       ...       ...       ...              ...  \n",
       "7719 -0.685842  1.192684 -0.735531 -0.820807        -2.097499  \n",
       "7720 -0.149948 -1.265038 -0.852951 -0.804617        -2.093980  \n",
       "7721 -0.417895 -1.038171 -0.821512 -0.755830        -2.105491  \n",
       "7722 -0.417895 -0.269346 -0.779383 -0.720096        -2.075269  \n",
       "7724  1.989656  1.810265  2.768510  2.858361         1.516353  \n",
       "\n",
       "[7692 rows x 16 columns]"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:30.962802Z",
     "start_time": "2020-06-16T03:22:30.906836Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 特征筛选，选出和样本标签之间存在显著相关性（p<0.05)的特征，从而过滤掉对模型预测贡献不大的特征\n",
    "from sklearn.feature_selection import f_regression\n",
    "\n",
    "F,p=f_regression(X,Y)  # 一个特征对应一个F值和p值\n",
    "k=F.shape[0] - (p>0.05).sum() # 去掉p值<=0.05的特征，k就是剩下的特征数量\n",
    "k "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:33.930084Z",
     "start_time": "2020-06-16T03:22:33.914094Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7692, 14)"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "array([[-0.36145926,  0.38349956, -0.52595809, ...,  1.1878003 ,\n",
       "         2.76851039,  1.11306014],\n",
       "       [ 0.71998211,  0.31207667,  0.07995522, ...,  1.1878003 ,\n",
       "        -0.31594018, -0.54302982],\n",
       "       [ 0.61859699, -0.61359857,  0.16201405, ...,  0.6519069 ,\n",
       "        -0.52679943, -0.72388776],\n",
       "       ...,\n",
       "       [-2.18639157, -1.54590149, -0.88880891, ..., -0.41789511,\n",
       "        -0.82151202, -0.75582961],\n",
       "       [-2.22018661, -1.55305315, -0.57185919, ..., -0.41789511,\n",
       "        -0.77938287, -0.72009558],\n",
       "       [ 2.64629956,  1.6236349 ,  3.04425458, ...,  1.9896556 ,\n",
       "         2.76851039,  2.8583612 ]])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# F检验筛选特征\n",
    "from sklearn.feature_selection import SelectKBest\n",
    "\n",
    "X_f=SelectKBest(f_regression,k=k).fit_transform(X,Y) \n",
    "X_f.shape    # 过滤掉了两个特征\n",
    "X_f"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:38.343703Z",
     "start_time": "2020-06-16T03:22:38.336692Z"
    }
   },
   "outputs": [],
   "source": [
    "xtrain,xtest,ytrain,ytest=train_test_split(X_f,Y,test_size=0.3, random_state=1) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:40.510995Z",
     "start_time": "2020-06-16T03:22:40.504012Z"
    }
   },
   "outputs": [],
   "source": [
    "# # 实例化并训练模型\n",
    "lr=LinearRegression().fit(xtrain,ytrain) \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:45.574369Z",
     "start_time": "2020-06-16T03:22:45.562377Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.7363652129420373, 0.7592334984747225)"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 测试集上的评分（R²）\n",
    "lr.score(xtrain,ytrain),lr.score(xtest,ytest) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:50.126024Z",
     "start_time": "2020-06-16T03:22:50.117031Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "MSE: 0.23076619886156002\n",
      "RMSE: 0.4803813056953403\n"
     ]
    }
   ],
   "source": [
    "from sklearn import metrics\n",
    "ypred = lr.predict(xtest) \n",
    "MSE = metrics.mean_squared_error(ytest, ypred)\n",
    "RMSE = np.sqrt(metrics.mean_squared_error(ytest, ypred)) \n",
    "print('MSE:',MSE) \n",
    "print('RMSE:',RMSE) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## PCA降维\n",
    "\n",
    "主成分分析的目的是从现有的特征中重建新的特征，新的特征剔除了原有特征中的冗余信息，因此更有区分度。\n",
    "\n",
    "主成分分析的结果是得到新的特征，而不是简单地舍弃原来的特征列表中的一些特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:22:58.610715Z",
     "start_time": "2020-06-16T03:22:58.587725Z"
    }
   },
   "outputs": [],
   "source": [
    "from sklearn.decomposition import PCA\n",
    "\n",
    "pca=PCA(n_components=0.97).fit(X,Y) \n",
    "X_pca=pca.transform(X)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:23:04.873414Z",
     "start_time": "2020-06-16T03:23:04.832436Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.190907</td>\n",
       "      <td>3.101147</td>\n",
       "      <td>-0.170334</td>\n",
       "      <td>0.243972</td>\n",
       "      <td>0.591915</td>\n",
       "      <td>-0.722812</td>\n",
       "      <td>-1.291400</td>\n",
       "      <td>-0.239489</td>\n",
       "      <td>-0.373001</td>\n",
       "      <td>0.675914</td>\n",
       "      <td>-0.333888</td>\n",
       "      <td>0.348498</td>\n",
       "      <td>-0.428894</td>\n",
       "      <td>1.098729</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.040196</td>\n",
       "      <td>-0.103121</td>\n",
       "      <td>1.246918</td>\n",
       "      <td>0.425979</td>\n",
       "      <td>0.404323</td>\n",
       "      <td>-0.688053</td>\n",
       "      <td>-1.087051</td>\n",
       "      <td>-0.352761</td>\n",
       "      <td>-0.207175</td>\n",
       "      <td>0.508471</td>\n",
       "      <td>0.201449</td>\n",
       "      <td>-0.254115</td>\n",
       "      <td>-0.822989</td>\n",
       "      <td>0.244171</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-1.121178</td>\n",
       "      <td>-0.892348</td>\n",
       "      <td>0.487519</td>\n",
       "      <td>0.458392</td>\n",
       "      <td>0.556886</td>\n",
       "      <td>-1.448645</td>\n",
       "      <td>-1.024598</td>\n",
       "      <td>0.225915</td>\n",
       "      <td>-0.012347</td>\n",
       "      <td>0.230232</td>\n",
       "      <td>0.099577</td>\n",
       "      <td>-0.206253</td>\n",
       "      <td>-0.925281</td>\n",
       "      <td>0.175318</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.786864</td>\n",
       "      <td>1.226605</td>\n",
       "      <td>1.638179</td>\n",
       "      <td>0.740388</td>\n",
       "      <td>0.456665</td>\n",
       "      <td>-0.495687</td>\n",
       "      <td>-0.958462</td>\n",
       "      <td>-0.851981</td>\n",
       "      <td>-0.292092</td>\n",
       "      <td>1.053819</td>\n",
       "      <td>0.420376</td>\n",
       "      <td>-0.487340</td>\n",
       "      <td>-0.841986</td>\n",
       "      <td>-0.680780</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-1.179131</td>\n",
       "      <td>0.134024</td>\n",
       "      <td>1.713750</td>\n",
       "      <td>0.849627</td>\n",
       "      <td>0.300389</td>\n",
       "      <td>0.046944</td>\n",
       "      <td>-0.695229</td>\n",
       "      <td>-0.230984</td>\n",
       "      <td>-0.624425</td>\n",
       "      <td>-1.367461</td>\n",
       "      <td>-0.687900</td>\n",
       "      <td>-0.125294</td>\n",
       "      <td>-0.933880</td>\n",
       "      <td>0.186023</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7687</th>\n",
       "      <td>-1.827527</td>\n",
       "      <td>0.203103</td>\n",
       "      <td>0.079464</td>\n",
       "      <td>-0.142969</td>\n",
       "      <td>-3.611630</td>\n",
       "      <td>-0.147713</td>\n",
       "      <td>0.183661</td>\n",
       "      <td>1.561171</td>\n",
       "      <td>0.184018</td>\n",
       "      <td>-1.368335</td>\n",
       "      <td>-0.861965</td>\n",
       "      <td>-0.014854</td>\n",
       "      <td>-0.133541</td>\n",
       "      <td>-0.035287</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7688</th>\n",
       "      <td>-1.915572</td>\n",
       "      <td>-0.189437</td>\n",
       "      <td>-0.928637</td>\n",
       "      <td>-0.974244</td>\n",
       "      <td>-3.507545</td>\n",
       "      <td>0.596298</td>\n",
       "      <td>-0.267274</td>\n",
       "      <td>0.982662</td>\n",
       "      <td>0.948810</td>\n",
       "      <td>0.395836</td>\n",
       "      <td>-0.726612</td>\n",
       "      <td>0.547833</td>\n",
       "      <td>-0.273632</td>\n",
       "      <td>-0.115000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7689</th>\n",
       "      <td>-1.944961</td>\n",
       "      <td>-0.421938</td>\n",
       "      <td>-1.323078</td>\n",
       "      <td>-0.997119</td>\n",
       "      <td>-3.294047</td>\n",
       "      <td>0.040833</td>\n",
       "      <td>-0.195480</td>\n",
       "      <td>1.348694</td>\n",
       "      <td>0.990868</td>\n",
       "      <td>0.314376</td>\n",
       "      <td>-0.515444</td>\n",
       "      <td>0.346749</td>\n",
       "      <td>-0.209437</td>\n",
       "      <td>-0.158504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7690</th>\n",
       "      <td>-1.865345</td>\n",
       "      <td>-0.599310</td>\n",
       "      <td>-1.450551</td>\n",
       "      <td>-0.736641</td>\n",
       "      <td>-3.029260</td>\n",
       "      <td>-1.010638</td>\n",
       "      <td>-0.140906</td>\n",
       "      <td>1.922154</td>\n",
       "      <td>1.128618</td>\n",
       "      <td>0.170343</td>\n",
       "      <td>-0.110310</td>\n",
       "      <td>-0.152820</td>\n",
       "      <td>-0.112954</td>\n",
       "      <td>-0.181042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7691</th>\n",
       "      <td>8.782151</td>\n",
       "      <td>3.146680</td>\n",
       "      <td>4.512150</td>\n",
       "      <td>4.740059</td>\n",
       "      <td>9.445565</td>\n",
       "      <td>8.199047</td>\n",
       "      <td>5.955545</td>\n",
       "      <td>11.021084</td>\n",
       "      <td>-0.079128</td>\n",
       "      <td>3.800623</td>\n",
       "      <td>0.195509</td>\n",
       "      <td>1.651346</td>\n",
       "      <td>-0.351735</td>\n",
       "      <td>0.831524</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>7692 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            0         1         2         3         4         5         6   \\\n",
       "0    -0.190907  3.101147 -0.170334  0.243972  0.591915 -0.722812 -1.291400   \n",
       "1    -1.040196 -0.103121  1.246918  0.425979  0.404323 -0.688053 -1.087051   \n",
       "2    -1.121178 -0.892348  0.487519  0.458392  0.556886 -1.448645 -1.024598   \n",
       "3    -0.786864  1.226605  1.638179  0.740388  0.456665 -0.495687 -0.958462   \n",
       "4    -1.179131  0.134024  1.713750  0.849627  0.300389  0.046944 -0.695229   \n",
       "...        ...       ...       ...       ...       ...       ...       ...   \n",
       "7687 -1.827527  0.203103  0.079464 -0.142969 -3.611630 -0.147713  0.183661   \n",
       "7688 -1.915572 -0.189437 -0.928637 -0.974244 -3.507545  0.596298 -0.267274   \n",
       "7689 -1.944961 -0.421938 -1.323078 -0.997119 -3.294047  0.040833 -0.195480   \n",
       "7690 -1.865345 -0.599310 -1.450551 -0.736641 -3.029260 -1.010638 -0.140906   \n",
       "7691  8.782151  3.146680  4.512150  4.740059  9.445565  8.199047  5.955545   \n",
       "\n",
       "             7         8         9         10        11        12        13  \n",
       "0     -0.239489 -0.373001  0.675914 -0.333888  0.348498 -0.428894  1.098729  \n",
       "1     -0.352761 -0.207175  0.508471  0.201449 -0.254115 -0.822989  0.244171  \n",
       "2      0.225915 -0.012347  0.230232  0.099577 -0.206253 -0.925281  0.175318  \n",
       "3     -0.851981 -0.292092  1.053819  0.420376 -0.487340 -0.841986 -0.680780  \n",
       "4     -0.230984 -0.624425 -1.367461 -0.687900 -0.125294 -0.933880  0.186023  \n",
       "...         ...       ...       ...       ...       ...       ...       ...  \n",
       "7687   1.561171  0.184018 -1.368335 -0.861965 -0.014854 -0.133541 -0.035287  \n",
       "7688   0.982662  0.948810  0.395836 -0.726612  0.547833 -0.273632 -0.115000  \n",
       "7689   1.348694  0.990868  0.314376 -0.515444  0.346749 -0.209437 -0.158504  \n",
       "7690   1.922154  1.128618  0.170343 -0.110310 -0.152820 -0.112954 -0.181042  \n",
       "7691  11.021084 -0.079128  3.800623  0.195509  1.651346 -0.351735  0.831524  \n",
       "\n",
       "[7692 rows x 14 columns]"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_pca=pd.DataFrame(X_pca)\n",
    "X_pca"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:23:07.297511Z",
     "start_time": "2020-06-16T03:23:07.288516Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0      -0.375626\n",
       "1       0.071972\n",
       "2       0.263799\n",
       "3       0.455627\n",
       "4       0.295771\n",
       "          ...   \n",
       "7719   -0.727310\n",
       "7720   -0.631396\n",
       "7721   -0.535483\n",
       "7722   -0.791253\n",
       "7724    2.757559\n",
       "Name: Next_Tmax, Length: 7692, dtype: float64"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Y "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:23:10.305510Z",
     "start_time": "2020-06-16T03:23:10.277525Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>10</th>\n",
       "      <th>11</th>\n",
       "      <th>12</th>\n",
       "      <th>13</th>\n",
       "      <th>14</th>\n",
       "      <th>15</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.222591</td>\n",
       "      <td>0.263564</td>\n",
       "      <td>-0.354346</td>\n",
       "      <td>0.201001</td>\n",
       "      <td>-0.104078</td>\n",
       "      <td>0.393707</td>\n",
       "      <td>0.422916</td>\n",
       "      <td>0.399811</td>\n",
       "      <td>0.344375</td>\n",
       "      <td>0.199096</td>\n",
       "      <td>0.161396</td>\n",
       "      <td>0.024242</td>\n",
       "      <td>-0.008320</td>\n",
       "      <td>0.074891</td>\n",
       "      <td>0.067806</td>\n",
       "      <td>0.123837</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.176310</td>\n",
       "      <td>0.265285</td>\n",
       "      <td>-0.114104</td>\n",
       "      <td>0.138877</td>\n",
       "      <td>0.255899</td>\n",
       "      <td>-0.075152</td>\n",
       "      <td>-0.144186</td>\n",
       "      <td>-0.186251</td>\n",
       "      <td>-0.187708</td>\n",
       "      <td>0.006525</td>\n",
       "      <td>-0.062892</td>\n",
       "      <td>0.174518</td>\n",
       "      <td>0.063135</td>\n",
       "      <td>0.572212</td>\n",
       "      <td>0.581673</td>\n",
       "      <td>0.013305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.037351</td>\n",
       "      <td>0.369242</td>\n",
       "      <td>0.124535</td>\n",
       "      <td>-0.091309</td>\n",
       "      <td>0.356799</td>\n",
       "      <td>0.194163</td>\n",
       "      <td>0.050192</td>\n",
       "      <td>-0.137952</td>\n",
       "      <td>-0.188829</td>\n",
       "      <td>0.300106</td>\n",
       "      <td>-0.082030</td>\n",
       "      <td>0.467780</td>\n",
       "      <td>0.370412</td>\n",
       "      <td>-0.293866</td>\n",
       "      <td>-0.242200</td>\n",
       "      <td>0.135549</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.143886</td>\n",
       "      <td>-0.116900</td>\n",
       "      <td>0.009709</td>\n",
       "      <td>-0.023289</td>\n",
       "      <td>0.066182</td>\n",
       "      <td>-0.269272</td>\n",
       "      <td>-0.078662</td>\n",
       "      <td>0.238818</td>\n",
       "      <td>0.339624</td>\n",
       "      <td>-0.367883</td>\n",
       "      <td>0.458988</td>\n",
       "      <td>0.380777</td>\n",
       "      <td>0.456304</td>\n",
       "      <td>0.031084</td>\n",
       "      <td>0.068033</td>\n",
       "      <td>-0.068799</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.556822</td>\n",
       "      <td>-0.116427</td>\n",
       "      <td>0.412381</td>\n",
       "      <td>0.276862</td>\n",
       "      <td>-0.008148</td>\n",
       "      <td>0.069692</td>\n",
       "      <td>0.065322</td>\n",
       "      <td>0.067476</td>\n",
       "      <td>0.084626</td>\n",
       "      <td>0.202593</td>\n",
       "      <td>0.023146</td>\n",
       "      <td>-0.098980</td>\n",
       "      <td>0.023781</td>\n",
       "      <td>0.155177</td>\n",
       "      <td>0.176496</td>\n",
       "      <td>0.549186</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.151977</td>\n",
       "      <td>0.211837</td>\n",
       "      <td>-0.064037</td>\n",
       "      <td>0.159100</td>\n",
       "      <td>0.633278</td>\n",
       "      <td>-0.085576</td>\n",
       "      <td>-0.117063</td>\n",
       "      <td>-0.011752</td>\n",
       "      <td>0.101858</td>\n",
       "      <td>0.010327</td>\n",
       "      <td>0.428733</td>\n",
       "      <td>-0.207442</td>\n",
       "      <td>-0.455501</td>\n",
       "      <td>-0.127033</td>\n",
       "      <td>-0.105697</td>\n",
       "      <td>-0.091055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.365998</td>\n",
       "      <td>-0.048491</td>\n",
       "      <td>0.081030</td>\n",
       "      <td>-0.100107</td>\n",
       "      <td>0.049808</td>\n",
       "      <td>0.065075</td>\n",
       "      <td>0.110499</td>\n",
       "      <td>0.117582</td>\n",
       "      <td>0.066377</td>\n",
       "      <td>0.446964</td>\n",
       "      <td>-0.053296</td>\n",
       "      <td>-0.134678</td>\n",
       "      <td>0.190231</td>\n",
       "      <td>0.097567</td>\n",
       "      <td>0.175187</td>\n",
       "      <td>-0.716099</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>-0.363952</td>\n",
       "      <td>-0.171169</td>\n",
       "      <td>0.106537</td>\n",
       "      <td>0.266401</td>\n",
       "      <td>-0.216637</td>\n",
       "      <td>-0.005312</td>\n",
       "      <td>-0.208855</td>\n",
       "      <td>-0.254764</td>\n",
       "      <td>-0.134687</td>\n",
       "      <td>0.430104</td>\n",
       "      <td>0.559331</td>\n",
       "      <td>-0.156250</td>\n",
       "      <td>0.233685</td>\n",
       "      <td>-0.006673</td>\n",
       "      <td>-0.073363</td>\n",
       "      <td>-0.002271</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.074334</td>\n",
       "      <td>-0.248728</td>\n",
       "      <td>-0.150518</td>\n",
       "      <td>0.790131</td>\n",
       "      <td>0.000696</td>\n",
       "      <td>-0.012900</td>\n",
       "      <td>-0.026494</td>\n",
       "      <td>-0.026388</td>\n",
       "      <td>-0.048583</td>\n",
       "      <td>-0.045634</td>\n",
       "      <td>-0.255449</td>\n",
       "      <td>0.353601</td>\n",
       "      <td>-0.090047</td>\n",
       "      <td>-0.114698</td>\n",
       "      <td>-0.120165</td>\n",
       "      <td>-0.231620</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.037215</td>\n",
       "      <td>-0.004457</td>\n",
       "      <td>0.117928</td>\n",
       "      <td>-0.232219</td>\n",
       "      <td>-0.296339</td>\n",
       "      <td>-0.123410</td>\n",
       "      <td>-0.066356</td>\n",
       "      <td>0.011828</td>\n",
       "      <td>0.074840</td>\n",
       "      <td>0.309506</td>\n",
       "      <td>0.171178</td>\n",
       "      <td>0.598953</td>\n",
       "      <td>-0.570818</td>\n",
       "      <td>0.045847</td>\n",
       "      <td>0.070643</td>\n",
       "      <td>-0.028369</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.229503</td>\n",
       "      <td>0.369792</td>\n",
       "      <td>0.186156</td>\n",
       "      <td>0.125093</td>\n",
       "      <td>-0.328768</td>\n",
       "      <td>0.234272</td>\n",
       "      <td>0.281791</td>\n",
       "      <td>-0.140801</td>\n",
       "      <td>-0.416467</td>\n",
       "      <td>-0.404113</td>\n",
       "      <td>0.329530</td>\n",
       "      <td>0.013047</td>\n",
       "      <td>-0.062762</td>\n",
       "      <td>-0.033296</td>\n",
       "      <td>0.053487</td>\n",
       "      <td>-0.211320</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>-0.035333</td>\n",
       "      <td>-0.639075</td>\n",
       "      <td>-0.068954</td>\n",
       "      <td>-0.204185</td>\n",
       "      <td>0.324623</td>\n",
       "      <td>0.465008</td>\n",
       "      <td>0.256828</td>\n",
       "      <td>-0.074791</td>\n",
       "      <td>-0.237693</td>\n",
       "      <td>-0.095115</td>\n",
       "      <td>0.183149</td>\n",
       "      <td>0.156242</td>\n",
       "      <td>-0.077580</td>\n",
       "      <td>0.137270</td>\n",
       "      <td>0.043119</td>\n",
       "      <td>0.022372</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>-0.352716</td>\n",
       "      <td>0.054672</td>\n",
       "      <td>0.668997</td>\n",
       "      <td>0.083435</td>\n",
       "      <td>0.103605</td>\n",
       "      <td>0.323239</td>\n",
       "      <td>-0.078533</td>\n",
       "      <td>-0.064569</td>\n",
       "      <td>0.417837</td>\n",
       "      <td>-0.182773</td>\n",
       "      <td>-0.123820</td>\n",
       "      <td>0.028602</td>\n",
       "      <td>-0.074621</td>\n",
       "      <td>0.137802</td>\n",
       "      <td>-0.072541</td>\n",
       "      <td>-0.196387</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>0.042054</td>\n",
       "      <td>0.060122</td>\n",
       "      <td>0.018483</td>\n",
       "      <td>0.005562</td>\n",
       "      <td>0.020105</td>\n",
       "      <td>-0.187160</td>\n",
       "      <td>0.144137</td>\n",
       "      <td>0.125921</td>\n",
       "      <td>-0.140524</td>\n",
       "      <td>0.038700</td>\n",
       "      <td>0.011597</td>\n",
       "      <td>0.014704</td>\n",
       "      <td>0.012052</td>\n",
       "      <td>0.666679</td>\n",
       "      <td>-0.675033</td>\n",
       "      <td>-0.017560</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          0         1         2         3         4         5         6   \\\n",
       "0  -0.222591  0.263564 -0.354346  0.201001 -0.104078  0.393707  0.422916   \n",
       "1  -0.176310  0.265285 -0.114104  0.138877  0.255899 -0.075152 -0.144186   \n",
       "2   0.037351  0.369242  0.124535 -0.091309  0.356799  0.194163  0.050192   \n",
       "3   0.143886 -0.116900  0.009709 -0.023289  0.066182 -0.269272 -0.078662   \n",
       "4   0.556822 -0.116427  0.412381  0.276862 -0.008148  0.069692  0.065322   \n",
       "5   0.151977  0.211837 -0.064037  0.159100  0.633278 -0.085576 -0.117063   \n",
       "6   0.365998 -0.048491  0.081030 -0.100107  0.049808  0.065075  0.110499   \n",
       "7  -0.363952 -0.171169  0.106537  0.266401 -0.216637 -0.005312 -0.208855   \n",
       "8   0.074334 -0.248728 -0.150518  0.790131  0.000696 -0.012900 -0.026494   \n",
       "9   0.037215 -0.004457  0.117928 -0.232219 -0.296339 -0.123410 -0.066356   \n",
       "10  0.229503  0.369792  0.186156  0.125093 -0.328768  0.234272  0.281791   \n",
       "11 -0.035333 -0.639075 -0.068954 -0.204185  0.324623  0.465008  0.256828   \n",
       "12 -0.352716  0.054672  0.668997  0.083435  0.103605  0.323239 -0.078533   \n",
       "13  0.042054  0.060122  0.018483  0.005562  0.020105 -0.187160  0.144137   \n",
       "\n",
       "          7         8         9         10        11        12        13  \\\n",
       "0   0.399811  0.344375  0.199096  0.161396  0.024242 -0.008320  0.074891   \n",
       "1  -0.186251 -0.187708  0.006525 -0.062892  0.174518  0.063135  0.572212   \n",
       "2  -0.137952 -0.188829  0.300106 -0.082030  0.467780  0.370412 -0.293866   \n",
       "3   0.238818  0.339624 -0.367883  0.458988  0.380777  0.456304  0.031084   \n",
       "4   0.067476  0.084626  0.202593  0.023146 -0.098980  0.023781  0.155177   \n",
       "5  -0.011752  0.101858  0.010327  0.428733 -0.207442 -0.455501 -0.127033   \n",
       "6   0.117582  0.066377  0.446964 -0.053296 -0.134678  0.190231  0.097567   \n",
       "7  -0.254764 -0.134687  0.430104  0.559331 -0.156250  0.233685 -0.006673   \n",
       "8  -0.026388 -0.048583 -0.045634 -0.255449  0.353601 -0.090047 -0.114698   \n",
       "9   0.011828  0.074840  0.309506  0.171178  0.598953 -0.570818  0.045847   \n",
       "10 -0.140801 -0.416467 -0.404113  0.329530  0.013047 -0.062762 -0.033296   \n",
       "11 -0.074791 -0.237693 -0.095115  0.183149  0.156242 -0.077580  0.137270   \n",
       "12 -0.064569  0.417837 -0.182773 -0.123820  0.028602 -0.074621  0.137802   \n",
       "13  0.125921 -0.140524  0.038700  0.011597  0.014704  0.012052  0.666679   \n",
       "\n",
       "          14        15  \n",
       "0   0.067806  0.123837  \n",
       "1   0.581673  0.013305  \n",
       "2  -0.242200  0.135549  \n",
       "3   0.068033 -0.068799  \n",
       "4   0.176496  0.549186  \n",
       "5  -0.105697 -0.091055  \n",
       "6   0.175187 -0.716099  \n",
       "7  -0.073363 -0.002271  \n",
       "8  -0.120165 -0.231620  \n",
       "9   0.070643 -0.028369  \n",
       "10  0.053487 -0.211320  \n",
       "11  0.043119  0.022372  \n",
       "12 -0.072541 -0.196387  \n",
       "13 -0.675033 -0.017560  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "components=pca.components_   #14个新特征的特征向量(每一行) \n",
    "components=pd.DataFrame(components) \n",
    "components"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:23:51.506451Z",
     "start_time": "2020-06-16T03:23:51.497454Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.25211483, 0.12948513, 0.08920839, 0.08258605, 0.07236459,\n",
       "       0.06850886, 0.05655238, 0.05076226, 0.05070263, 0.04071053,\n",
       "       0.03428377, 0.02324948, 0.01807148, 0.01315093])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pca.explained_variance_ratio_ #主成分的解释方差百分比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:23:54.442229Z",
     "start_time": "2020-06-16T03:23:54.432222Z"
    }
   },
   "outputs": [],
   "source": [
    "# 重新划分训练集和测试集\n",
    "Xtrain,Xtest,Ytrain,Ytest=train_test_split(X_pca,Y, test_size=0.3, random_state=1) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:23:57.857425Z",
     "start_time": "2020-06-16T03:23:57.848431Z"
    }
   },
   "outputs": [],
   "source": [
    "# # 实例化并训练模型\n",
    "lr=LinearRegression().fit(Xtrain,Ytrain) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T03:23:59.855182Z",
     "start_time": "2020-06-16T03:23:59.839193Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.7303190684225095, 0.7303190684225095)"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 模型在训练集和测试机上的评分（R²）\n",
    "lr.score(Xtrain,Ytrain),lr.score(Xtrain,Ytrain)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 随机森林回归 RandomForestRegression（20分）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:36:37.843504Z",
     "start_time": "2020-06-16T00:15:30.474184Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 5 folds for each of 48 candidates, totalling 240 fits\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\python39\\lib\\site-packages\\sklearn\\model_selection\\_search.py:969: UserWarning: One or more of the test scores are non-finite: [nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan\n",
      " nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan nan\n",
      " nan nan nan nan nan nan nan nan nan nan nan nan]\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5,\n",
       "             estimator=DecisionTreeClassifier(class_weight='balanced',\n",
       "                                              random_state=420),\n",
       "             n_jobs=-1,\n",
       "             param_grid={'criterion': ('gini', 'entropy'),\n",
       "                         'max_depth': range(3, 15),\n",
       "                         'splitter': ('best', 'random')},\n",
       "             scoring='roc_auc', verbose=2)"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 1.使用集成算法-随机森林回归器\n",
    "# 2.使用网格搜索寻找主要参数的最优取值组合\n",
    "# 3.使用去除异常值后的训练集数据训练模型（15分）\n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "clf = DecisionTreeClassifier(random_state=420,class_weight='balanced')\n",
    "#测试参数\n",
    "param_test = {\n",
    "             'splitter':('best','random'),\n",
    "             'criterion':('gini','entropy'), #基尼  信息熵\n",
    "             'max_depth':range(3,15) #最大深度\n",
    "             #,min_samples_leaf:(1,50,5)\n",
    "}\n",
    "\n",
    "gsearch= GridSearchCV(estimator=clf, #对应模型\n",
    "                param_grid=param_test,#要找最优的参数\n",
    "                scoring='roc_auc',#准确度评估标准 \n",
    "                n_jobs=-1,# 并行数  个数   -1:跟CPU核数一致\n",
    "                cv = 5,#交叉验证 5折\n",
    "                verbose=2#输出训练过程\n",
    "                )\n",
    "\n",
    "gsearch.fit(Xtrain.astype(int),Ytrain.astype(int))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:39:36.195735Z",
     "start_time": "2020-06-16T00:39:36.191739Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'criterion': 'gini', 'max_depth': 3, 'splitter': 'best'}"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看最优参数组合\n",
    "gsearch.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'criterion': 'gini', 'max_depth': 3, 'splitter': 'best'}"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gsearch.best_params_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:40:27.950412Z",
     "start_time": "2020-06-16T00:40:22.666442Z"
    }
   },
   "outputs": [],
   "source": [
    "# 用上面得到的最优参数组合重新实例化模型\n",
    "rfr=RandomForestRegressor(n_estimators=181,\n",
    "                         max_depth=9,).fit(X_train,Y_train)   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:40:30.380572Z",
     "start_time": "2020-06-16T00:40:30.207691Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.9147080653942221, 0.8606627609698474)"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rfr.score(X_train,Y_train),rfr.score(X_test,Y_test)   # 随机森林回归算法的score返回的是R²，并不是mse(尽管实例化时用的criterion='mse') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:40:48.947100Z",
     "start_time": "2020-06-16T00:40:39.499061Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.238283884483752"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# # 使用交叉验证---随机森林回归器在测试集上的MSE平均得分（5分）\n",
    "y_test_pred = lr.predict(Xtest)\n",
    "mean_squared_error(Ytest, y_test_pred)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-06-16T00:36:54.809803Z",
     "start_time": "2020-06-16T00:36:54.803807Z"
    },
    "scrolled": false
   },
   "source": [
    "'''\n",
    "可以看出：无论是在训练集上还是测试集上，随机森林的的表现均优于LinearRegression,Lasson和Ridge：\n",
    "训练集上的MSE由原来的0.25降到了0.15，R²由原来的0.75上升到了0.85。\n",
    "'''"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "413.188px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
